System.InvalidOperationException: Sammlung wurde geändert
Beim Auflisten durch eine Warteschlange tritt eine folgende Ausnahme auf:
System.InvalidOperationException: Sammlung wurde geändert; Aufzählungsoperation wird möglicherweise nicht ausgeführt
Hier ist der Code-Auszug:
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: }
Ich denke, ich verstehe das Problem - Ändern der Hashtabelle anaction.Status = RecordStatus.Batched
, der MoveNext () am Enumerator durcheinander bringt. Die Frage ist, wie setze ich dieses "Muster" richtig um?