3
我有下面的代码。这可能是愚蠢的问题,但我不确定,如果同步是必要的或不。ThreadStatic和Synchronization
class MyClass
{
[ThreadStatic]
private static object _staticObject;
private static readonly LockStaticField = new object();
public static object StaticObject
{
get
{
lock(LockStaticField)
{
return _staticObject ?? (_staticObject = new object());
}
}
}
}
我知道ThreadStatic
领域不需要任何同步,因为国家不共享。但是,关于静态getter和初始化是什么?
好吧,让我们考虑一个长时间运行的初始化,它将被调度程序明确地中断。 (是的,我知道我不应该在一个getter中调用这样的初始化,这只是一个假设情况。) – DHN 2012-07-17 07:11:05
@DHN无关紧要,因为只有*那个线程会受到影响,并且会在反正初始化。 – 2012-07-17 15:55:03
好的。谢谢。 :O) – DHN 2012-07-18 06:46:48