全部,顯示器深度類型
您能解釋一下關於Monitor Class的問題嗎?esp下面的代碼更詳細些嗎?
if (Monitor.TryEnter(CashDrawers.lockObject))
{
try
{
// Work here
}
finally
{
Monitor.Exit(lockObject);
}
}
感謝, CK
全部,顯示器深度類型
您能解釋一下關於Monitor Class的問題嗎?esp下面的代碼更詳細些嗎?
if (Monitor.TryEnter(CashDrawers.lockObject))
{
try
{
// Work here
}
finally
{
Monitor.Exit(lockObject);
}
}
感謝, CK
不知道這是你在找什麼,但...
你在你的問題發佈的代碼是
的非阻塞版本lock(CashDrawers.LockObject)
{
//work here
}
這意味着只有當它能夠在第一次嘗試中獲得鎖定時,它纔會做「工作」。如果其他東西已經有鎖,那麼你的代碼將不會執行任何操作。我假設這段代碼是在CashDrawers類中編寫的,否則你可能有一個轉錄錯誤,因爲你需要對你輸入的同一個對象進行Moniter.Exit。
您是否在尋找關於同步的一般解釋?如果這樣超出了我可以在答案中寫出的範圍。有關.net中的一些常規同步信息,請查看http://www.albahari.com/threading/part2.aspx。
我真的懂了,謝謝你。 – VCK
嘗試獲取指定對象的排他鎖,並自動設置一個值,該值指示鎖是否被採取......;)哈哈,你能更具體一點你想要的東西嗎?這是一個問答網站。 –
謝謝,我明白了! – VCK