哈希表具有syncroot属性,而通用词典则没有。如果我有执行此操作的代码:

lock (hashtable.Syncroot)
{
....
}

如果要删除哈希表并更改为通用词典,该如何复制呢?

最佳答案

如果您严格追求兼容性,那么Bryan是正确的。这是在“字典”上保持当前语义的最佳方法。

虽然扩大。 SyncRoot属性未直接添加到通用词典的原因是,这是进行同步的危险方式。它仅比“lock(this)”好得多,后者非常危险并且容易发生死锁。这里有几个链接可以说明为什么这样做不好。

  • http://blogs.msdn.com/bclteam/archive/2005/03/15/396399.aspx
  • http://blogs.msdn.com/ricom/archive/2006/05/01/587750.aspx
  • 10-04 15:16