System.InvalidOperationException: se modificó la colección
Obtengo una excepción siguiente al enumerar a través de una cola:
System.InvalidOperationException: se modificó la colección; operación de enumeración no puede ejecutar
Aquí está el extracto del código:
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: }
Creo que entiendo el problema: alterar la tabla hash enaction.Status = RecordStatus.Batched
, que atornilla el MoveNext () en el enumerador. La pregunta es, ¿cómo implemento ese "patrón" correctamente?