我有以下代码:
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 将一个项目添加到基础字典。Thread1 是否受 Thread2 的添加影响?