System.WIndows.Application静态成员是线程安全的吗?

时间:2010-03-17 16:56:14

标签: c# wpf multithreading thread-safety

应用程序静态成员应该是线程安全的:

  

公共静态(在Visual中共享)   基本)这种类型的成员是线程   安全。另外,还有FindResource   和TryFindResource方法和   属性和资源属性   是线程安全的。1

在调用System.Windows.Application的静态成员方法时,我们可以在多线程环境中信任该语句多少?

更新
这都是对这个问题的引用:Threading errors with Application.LoadComponent (key already exists)

我从未想过我会在图书馆看到一个真正的错误,但这对我来说一定是这一天......这个问题似乎表明了一个真正的错误。通常它是“用户错误”,但似乎并非如此。

2 个答案:

答案 0 :(得分:2)

这是.Net框架和相关库的一般模式。除非另有标记,否则假定静态/共享成员是线程安全的。如果您发现一个非线程安全且在文档中未标记为成员的成员,那么它就是一个错误(在文档或实现中)。

因此我认为依赖它们是线程安全的是安全的。

答案 1 :(得分:1)

一般情况下,您应该首先信任文档,但如果事情不像宣传的那样工作,请停止信任。

在这种情况下,由于WPF中的错误,文档是错误的。有关该错误的详细信息,请参阅this answer