天天看點

Monitor 類

命名空間:System.Threading
程式集:
mscorlib.dll, System.Threading.dll

嘗試擷取指定對象的排他鎖。

用于 Monitor 鎖定對象 (即引用類型) ,而不是值類型。 有關詳細資訊,請參閱 Monitor 文章。

若要確定線程不輸入臨界區,應檢查方法的傳回值,并僅在臨界區中執行代碼,前提是其傳回值為 

true

 。 下面的代碼段顯示了用于調用此方法的模式。 請注意,應 Exit 在塊中調用 

finally

 ,以確定調用線程在發生異常的情況下釋放其對臨界區的鎖定。

C#複制

var lockObj = new Object();

if (Monitor.TryEnter(lockObj)) {
   try {
      // The critical section.
   }
   finally {
      // Ensure that the lock is released.
      Monitor.Exit(lockObj);
   }
}
else {
   // The lock was not axquired.
}