我有以下代码:
private Dictionary<object, object> items = new Dictionary<object, object>;
public IEnumerable<object> Keys
{
get
{
foreach (object key in items.Keys)
{
yield return key;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是线程安全的吗?如果不是我必须lock围绕循环或yield return?
这就是我的意思:
KeysThread1 访问属性,而Thread2将一个项添加到基础字典.Thread1是否受Thread2的影响?