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?