Concurrent Sammlungen in C #

Ich suche nach einer Möglichkeit, eine gleichzeitige Auflistung in C # oder zumindest eine Auflistung zu erhalten, die einen gleichzeitigen Enumerator unterstützt. Im Moment erhalte ich eine InvalidOperationException, wenn sich die Sammlung, über die ich iteriere, ändert. Ich könnte die Sammlung einfach tief kopieren und mit einer privaten Kopie arbeiten, aber ich frage mich, ob es vielleicht einen besseren Weg gibt

Code-Auszug

foreach (String s in (List<String> )callingForm.Invoke(callingForm.delegateGetKillStrings))
    {
        //do some jazz
    }

--bearbeiten-

Ich habe die Antwort angenommen, aber auch festgestellt, dass ich sicherstellen musste, dass der Code, der in die Sammlung geschrieben wurde, auch versuchen musste, eine Sperre zu erhalten.

    private void addKillString(String s)
    {
        lock (killStrings)
        {
            killStrings.Add(s);
        }
    }

Antworten auf die Frage(6)

Ihre Antwort auf die Frage