我是SyncRoot概念的新手。据我所知,用于锁定的对象应该是私有的。SyncRoot对象是否真的线程安全?
但是HashTable
有一个公共属性,SyncRoot
,它只是一个私人SyncRoot对象的包装。枚举集合时,您锁定HashTable.SyncRoot
的是recommended。
看起来我们可能因为死锁而失败,因为它不再是私人的。它真的是线程安全的吗?
如果我使自己的私人锁定机制呢? private readonly object _syncObject;
哪一个更好?为什么?
你能告诉我任何可以使用它的场景吗?因为我觉得SyncRoot属性只是一个包装,因此是线程安全漏洞。 – 2012-01-06 12:21:20