NET Framework有没有提供与泛型List类似的线程安全的集合类

 我来答
freeeeeewind
2017-12-18 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1347万
展开全部

可以自己编写一个线程安全的List<T>集合,如下

using System.Collections.Generic;

public class SyncList<T> : List<T>
{
    static readonly object SyncRoot = new object();
    
    public new T this[int index]
    {
        get
        {
            lock(SyncRoot)
            {
                return base[index];
            }
        }
        set
        {
            lock(SyncRoot)
            {
                base[index] = value;
            }
        }
    }

    public new void Add(T item)
    {
        lock(SyncRoot)
        {
            base.Add(item);
        }
    }

    public new void AddRange(IEnumerable<T> items)
    {
        lock(SyncRoot)
        {
            base.AddRange(items);
        }
    }

    public new void Remove(T item)
    {
        lock(SyncRoot)
        {
            base.Remove(item);
        }
    }

    public new void RemoveAt(int index)
    {
        lock(SyncRoot)
        {
            base.RemoveAt(index);
        }
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式