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 () на счетчике. Вопрос в том, как мне реализовать этот «шаблон». правильно?

Ответы на вопрос(6)

Ваш ответ на вопрос