我寫了簡單的代碼(附加),我不明白爲什麼某些塊的鎖沒有鎖定範圍。爲什麼這段代碼中的鎖不起作用?
代碼:
object locker = new object();
private void foo(int i)
{
Console.WriteLine(string.Format("i is {0}", i));
lock(locker)
{
while(true)
{
Console.WriteLine(string.Format("i in while loop is {0}", i)) ;
foo(++i);
}
}
}
我希望在while循環foo的方法的調用將等待,直到更衣室會釋放(更衣室範圍) - 但與ARG foo的所有通話++我可以進入儲物櫃。
我認爲它是相同的線程,所以不應該鎖定自己(也許有人更詳細地瞭解它) – V4Vendetta 2012-04-11 03:44:17
我明確瞭解到這個新東西,+1 – 2012-04-11 03:45:37
如果你已經在浴室,門是已經鎖定了,你在門上放了一個*秒*鎖,*你已經在浴室了。* – 2012-04-11 04:20:33