【发布时间】:2014-09-01 16:12:01
【问题描述】:
我在 .Net 框架文档的大部分地方都注意到了以下声明。
问题:这其中的秘诀是什么?我不认为静态类总是线程安全的。我的问题与 .Net 框架中可用的标准类有关,而不是开发人员创建的自定义类。
下面的静态类中的“GetString”方法是否会因为该方法是静态方法而成为线程安全的?
public static class MyClass
{
static int x = 0;
static MyClass()
{
x = 23;
}
public static string GetString()
{
x++;
return x.ToString();
}
}
【问题讨论】:
-
它们不是线程安全的。
-
代码默认不是线程安全的 - 静态或其他,声明指出这些成员在设计时考虑了线程安全。
-
那么为什么我在 .Net 文档中看到的所有 .Net 框架类中总是出现线程安全说明静态方法是线程安全的。我不是指开发人员创建的自定义类,而是框架附带的类。
-
因为你见过的都是线程安全的。
标签: c# .net thread-safety static-methods