2012-06-25 72 views
0

全部,顯示器深度類型

您能解釋一下關於Monitor Class的問題嗎?esp下面的代碼更詳細些嗎?

if (Monitor.TryEnter(CashDrawers.lockObject)) 
    { 
     try 
     { 
      // Work here      
     } 
     finally 
     { 
      Monitor.Exit(lockObject); 
     } 
    } 

感謝, CK

+1

嘗試獲取指定對象的排他鎖,並自動設置一個值,該值指示鎖是否被採取......;)哈哈,你能更具體一點你想要的東西嗎?這是一個問答網站。 –

+0

謝謝,我明白了! – VCK

回答

1

不知道這是你在找什麼,但...

你在你的問題發佈的代碼是

的非阻塞版本
lock(CashDrawers.LockObject) 
{ 
    //work here 
} 

這意味着只有當它能夠在第一次嘗試中獲得鎖定時,它纔會做「工作」。如果其他東西已經有鎖,那麼你的代碼將不會執行任何操作。我假設這段代碼是在CashDrawers類中編寫的,否則你可能有一個轉錄錯誤,因爲你需要對你輸入的同一個對象進行Moniter.Exit。

您是否在尋找關於同步的一般解釋?如果這樣超出了我可以在答案中寫出的範圍。有關.net中的一些常規同步信息,請查看http://www.albahari.com/threading/part2.aspx

+0

我真的懂了,謝謝你。 – VCK