一尘不染

线程安全列表 属性

c#

我想要一个List<T>作为属性的实现,可以毫无疑问地在线程安全地使用它。

像这样:

private List<T> _list;

private List<T> MyT
{
    get { // return a copy of _list; }
    set { _list = value; }
}

似乎仍然需要返回集合的副本(克隆的),因此,如果在某个地方我们正在迭代集合并且同时设置了集合,则不会引发异常。

如何实现线程安全的集合属性?


阅读 338

收藏
2020-05-19

共1个答案

一尘不染

如果您以.Net 4为目标,则System.Collections.Concurrent命名空间中有一些选项

ConcurrentBag<T>在这种情况下,您可以使用List<T>

2020-05-19