我看到使用靜態只讀對象的鎖定很多,這個語句在下面給出的代碼中的意義是什麼?我知道鎖定應用於一個對象,這只是一個鎖定對象工作,這只是一個黑客攻擊,因爲我不需要任何對象,只是創建一個對象,以便鎖定工作?關於C#線程鎖定的一個小查詢
此外,而不是隻是說對象obj1 =新的對象()我使用只讀和靜態,我想由於增加的性能,但只讀和靜態如何幫助提高性能?
static readonly object locker = new object();
代碼如下:
class ThreadSafe
{
static bool done;
static readonly object locker = new object();
static void Main()
{
new Thread (Go).Start();
Go();
}
static void Go()
{
lock (locker)
{
if (!done) { Console.WriteLine ("Done"); done = true; }
}
}
}
[爲什麼鎖對象必須是靜態的](http://stackoverflow.com/questions/5053172/why-does-the-lock-object-has-to-be-static) –