System.InvalidOperationException: коллекция была изменена
Я получаю следующее исключение при перечислении через очередь:
System.InvalidOperationException: Collection was modified; enumeration operation may not execute
Вот выдержка из кода:
1: private bool extractWriteActions(out List<WriteChannel> channelWrites)
2: {
3: channelWrites = new List<WriteChannel>();
4: foreach (TpotAction action in tpotActionQueue)
5: {
6: if (action is WriteChannel)
7: {
8: channelWrites.Add((WriteChannel)action);
9: lock(tpotActionQueue)
10: {
11: action.Status = RecordStatus.Batched;
12: }
13: }
14: }
15: return (channelWrites.Count > 0);
16: }
Я думаю, что я понимаю проблему - изменение хеш-таблицы вaction.Status = RecordStatus.Batched
, который облажает MoveNext () на счетчике.
Вопрос в том, как мне реализовать этот «шаблон». правильно?