我有一个实现的自定义类,ICollection
这个类是只读的,即.IsReadOnly
返回true(与使用readonly
关键字相反),以及通常会修改集合中数据的所有函数InvalidOperationException
.
现在,给定这样的结构,并在实现ICollection
(特别是ICollection.IsSynchronized
朋友)时快速浏览线程安全问题,我提出了这个快速而肮脏的解决方案.
bool ICollection.IsSynchronised { get{ return true; } } object ICollection.SyncRoot { get{ return new Object(); } }
现在,考虑到MSDN中的示例,这不会导致不同的线程正确锁定,因为它们从中获取不同的对象SyncRoot
.鉴于这是一个只读集合,这是一个问题吗?返回时是否存在内存/ GC问题new Object()
?您可以通过此实现看到的任何其他问题?