次のコードがあります。
private Dictionary<object, object> items = new Dictionary<object, object>;
public IEnumerable<object> Keys
{
get
{
foreach (object key in items.Keys)
{
yield return key;
}
}
}
これはスレッドセーフですか?そうでない場合はlock
、ループの周りに配置する必要がありyield return
ますか?
これが私が意味することです:
Thread1 はKeys
プロパティにアクセスし、Thread2 は基になるディクショナリに項目を追加します。Thread2 の追加によって Thread1 は影響を受けますか?