Я ищу способ получить параллельную коллекцию в C # или хотя бы коллекцию, которая поддерживает параллельный перечислитель. Прямо сейчас я получаю InvalidOperationException, когда коллекция, в которой я выполняю итерацию, изменяется. Я мог бы просто глубоко скопировать коллекцию и работать с частной копией, но мне интересно, есть ли, возможно, лучший способ
Фрагмент кода:
foreach (String s in (List<String> )callingForm.Invoke(callingForm.delegateGetKillStrings))
{
//do some jazz
}
- изменить -
Я взял ответ, но также обнаружил, что мне нужно убедиться, что код, который записывал в коллекцию, должен попытаться также получить блокировку.
private void addKillString(String s)
{
lock (killStrings)
{
killStrings.Add(s);
}
}