Это небольшая программа, которую я пишу и использую только.
Теперь я собираюсь написать код всех областей, где я использую hashset, вызвавший эту проблему.
Я не понимаю, как это возможно. Этот элемент используется только в MainWindow
hsProxyList - это hashset
HashSet<string> hsProxyList = new HashSet<string>();
ошибка произошла при следующей итерации
lock (hsProxyList)
{
int irRandomProxyNumber = GenerateRandomValue.GenerateRandomValueMin(hsProxyList.Count, 0);
int irLocalCounter = 0;
foreach (var vrProxy in hsProxyList)
{
if (irLocalCounter == irRandomProxyNumber)
{
srSelectedProxy = vrProxy;
break;
}
irLocalCounter++;
}
}
}
В других местах, где я использую hsProxyList
Я не блокирую объект, когда получаю его счет - я полагаю, это не вызовет какой-либо ошибки, но может быть неправильной - не смертельно важно
lblProxyCount.Content = "remaining proxy count: " + hsProxyList.Count;
новый
lock (hsProxyList)
{
hsProxyList.Remove(srSelectedProxy);
}
новый
lock (hsProxyList)
{
hsProxyList = new HashSet<string>();
foreach (var vrLine in File.ReadLines(cmbBoxSelectProxy.SelectedItem.ToString()))
{
hsProxyList.Add(vrLine);
}
}
Как видно, я использую блокировку всюду. Это многопоточное программное обеспечение. Все hsProxyList используются в MainWindow.xaml.cs - это приложение WPF для С#