generic.list和generic.dictionary线程在.net中是否安全

时间:2012-01-23 01:47:55

标签: .net multithreading generics collections thread-safety

我们如何知道方法是否是线程安全的

例如,如果我检查http://msdn.microsoft.com/en-us/library/3wcytfd1.aspx,则没有任何内容表明其线程安全。

2 个答案:

答案 0 :(得分:10)

不,它们不是线程安全的(没有执行自己的锁定)。

使用其中一个Concurrent集合。

Thread-Safe Collections

  

System.Collections.Concurrent命名空间提供了几个   应该使用的线程安全的集合类来代替   System.Collections和中的相应类型   每当有多个线程时,System.Collections.Generic命名空间   同时访问该集合。

答案 1 :(得分:3)

整个List<T>类的文档都有一个关于线程安全的段:

  

此类型的公共静态(在Visual Basic中为Shared)成员是线程安全的。不保证任何实例成员都是线程安全的。