Czy zwrot wydajności w C # jest bezpieczny dla wątków?
Mam następujący fragment kodu:
private Dictionary<object, object> items = new Dictionary<object, object>;
public IEnumerable<object> Keys
{
get
{
foreach (object key in items.Keys)
{
yield return key;
}
}
}
Czy to jest bezpieczne dla wątków? Jeśli nie, to muszę umieścićlock
wokół pętli lubyield return
?
Oto co mam na myśli:
Wątek1 uzyskuje dostęp doKeys
właściwość, podczas gdy Thread2 dodaje element do podstawowego słownika. Czy na wątek 1 wpływa dodatek Thread2?