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?

Respuestas a la pregunta(6)

Su respuesta a la pregunta