Ich suche nach einer Möglichkeit, eine gleichzeitige Sammlung in C# oder zumindest eine Sammlung, die eine gleichzeitige Enumerator unterstützt. Im Moment erhalte ich eine InvalidOperationException, wenn sich die Sammlung, über die ich iteriere, ändert. Ich konnte die Sammlung nur tief kopieren und mit einer privaten Kopie arbeiten, aber ich frage mich, ob es vielleicht ein besserer WegConcurrent Sammlungen in C#
-Code-Schnipsel:
foreach (String s in (List<String>)callingForm.Invoke(callingForm.delegateGetKillStrings))
{
//do some jazz
}
--edit--
Ich habe Die Antwort fand aber auch heraus, dass ich sicherstellen musste, dass der Code, der in die Sammlung geschrieben wurde, auch versuchte, eine Sperre zu erhalten.
private void addKillString(String s)
{
lock (killStrings)
{
killStrings.Add(s);
}
}