如何为每个线程制作 List {get;set;},.

本文关键字:string get set List 线程 | 更新日期: 2023-09-27 18:30:27

我有一个需要动态设置列表的类。 我还使用线程将这个类称为 10 次左右的不同时间。

public static List<string> MyList {get;set;}

但是,我是线程的新手,因为我被告知这是不安全的。 我的问题是我如何为每个线程创建MyList实例?

一个例子会很棒!

如何为每个线程制作 List<string> {get;set;},.

使用 ThreadStatic 属性。

[ThreadStatic] private static List<string> _myList;
public static List<string> MyList {
  get { return _myList; }
  set { _myList = value; }
}

此外,通常最好让包含类控制集合;这意味着没有外部可见的 setter 和返回副本或只读集合的 getter。

但是,这可能没有您想要的效果。每个线程都有自己的集合副本。也许你需要的是看看或重新考虑你的设计。