Ist Yield Return in C # threadsicher?

Ich habe den folgenden Code:

private Dictionary<object, object> items = new Dictionary<object, object>;
public IEnumerable<object> Keys
{
    get
    {
        foreach (object key in items.Keys)
        {
            yield return key;
        }
    }
}

Ist das threadsicher? Wenn nicht muss ich eine setzenlock um die Schleife oder dieyield return?

Hier ist was ich meine:

Thread1 greift auf dieKeys Eigenschaft, während Thread2 dem zugrunde liegenden Wörterbuch ein Element hinzufügt. Ist Thread1 vom Hinzufügen von Thread2 betroffen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage