哈希表具有syncroot属性,而通用词典则没有。如果我有执行此操作的代码:
lock (hashtable.Syncroot)
{
....
}
如果要删除哈希表并更改为通用词典,该如何复制呢?
最佳答案
如果您严格追求兼容性,那么Bryan是正确的。这是在“字典”上保持当前语义的最佳方法。
虽然扩大。 SyncRoot属性未直接添加到通用词典的原因是,这是进行同步的危险方式。它仅比“lock(this)”好得多,后者非常危险并且容易发生死锁。这里有几个链接可以说明为什么这样做不好。
哈希表具有syncroot属性,而通用词典则没有。如果我有执行此操作的代码:
lock (hashtable.Syncroot)
{
....
}
最佳答案
如果您严格追求兼容性,那么Bryan是正确的。这是在“字典”上保持当前语义的最佳方法。
虽然扩大。 SyncRoot属性未直接添加到通用词典的原因是,这是进行同步的危险方式。它仅比“lock(this)”好得多,后者非常危险并且容易发生死锁。这里有几个链接可以说明为什么这样做不好。