当前位置:  开发笔记 > 编程语言 > 正文

ICollection,只读集合和同步.这是正确的吗?

如何解决《ICollection,只读集合和同步.这是正确的吗?》经验,为你挑选了0个好方法。

我有一个实现的自定义类,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()?您可以通过此实现看到的任何其他问题?

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有