Я читал в MSDN, что List является поточно-ориентированным при использовании в качестве публичного статического типа.Однако следующий фрагмент кода доказывает обратное.Я пытаюсь добавить и удалить элементы из списка, но метод remove выдает ошибку посередине, говоря, что индекс выходит за границы.Что здесь не так?
Это правильная реализация, чтобы проверить мою теорию.Если нет, то может кто-нибудь предложить лучший пример.
class Program
{
public static List<string> strlist = new List<string>();
public static AutoResetEvent autoEvent = new AutoResetEvent(false);
static void Main(string[] args)
{
strlist = new List<string>();
new Thread(() =>
{
for(int i=0;i<10000000;i++)
{
strlist.Add("item1");
}
//Thread.Sleep(5000);
autoEvent.Set();
}).Start(); ;
new Thread(() => {
strlist.ForEach(e => strlist.Remove(e));
}).Start();
Console.WriteLine("Waiting");
autoEvent.WaitOne();
int ci = 0;
strlist.ForEach(str => ci++);
Console.WriteLine(ci.ToString() + " Done");
Console.Read();
}
}