ReaderWriterLockSlim.TryEnterUpgradeableReadLock 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
嘗試以選用的逾時,在可升級模式下進入鎖定狀態。
多載
TryEnterUpgradeableReadLock(Int32) |
嘗試以選用的逾時,在可升級模式下進入鎖定狀態。 |
TryEnterUpgradeableReadLock(TimeSpan) |
嘗試以選用的逾時,在可升級模式下進入鎖定狀態。 |
TryEnterUpgradeableReadLock(Int32)
嘗試以選用的逾時,在可升級模式下進入鎖定狀態。
public:
bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
public bool TryEnterUpgradeableReadLock (int millisecondsTimeout);
member this.TryEnterUpgradeableReadLock : int -> bool
Public Function TryEnterUpgradeableReadLock (millisecondsTimeout As Integer) As Boolean
參數
傳回
如果呼叫執行緒已進入可升級模式,則為 true
;否則為 false
。
例外狀況
RecursionPolicy 屬性為 NoRecursion,且目前的執行緒已進入鎖定狀態。
-或-
目前執行緒一開始已進入讀取模式的鎖定狀態,因此嘗試進入可升級模式可能會造成死結。
-或-
遞迴的次數會超過計數器的容量。 限制過大,使應用程式永遠不會發生這個情形。
millisecondsTimeout
的值為負,但不等於 Infinite (-1),這是唯一允許的負值。
備註
如果 millisecondsTimeout
為 0 (零) ,這個方法會檢查鎖定狀態,並在所需的狀態無法使用時立即傳回 false
。
當執行緒通常會存取受讀取模式保護 ReaderWriterLockSlim 的資源時,請使用可升級模式,但如果符合特定條件,可能需要進入寫入模式。 可升級模式中的執行緒可以升級至寫入模式,或降級為讀取模式。
在任何指定的時間,只有一個執行緒可以進入可升級模式的鎖定。 如果執行緒處於可升級模式,而且沒有線程等候進入寫入模式,則其他任何執行緒數目都可以進入讀取模式,即使有線程正在等候進入可升級模式也一樣。
如果一或多個執行緒正在等候進入寫入模式,則呼叫 TryEnterUpgradeableReadLock 方法的執行緒會封鎖,直到這些執行緒逾時或進入寫入模式,然後結束寫入模式,或直到呼叫執行緒自己的逾時間隔到期為止。
注意
如果鎖定允許遞迴,在可升級模式中進入鎖定的執行緒可以遞迴進入可升級模式,即使其他執行緒正在等候進入寫入模式也一樣。
適用於
TryEnterUpgradeableReadLock(TimeSpan)
嘗試以選用的逾時,在可升級模式下進入鎖定狀態。
public:
bool TryEnterUpgradeableReadLock(TimeSpan timeout);
public bool TryEnterUpgradeableReadLock (TimeSpan timeout);
member this.TryEnterUpgradeableReadLock : TimeSpan -> bool
Public Function TryEnterUpgradeableReadLock (timeout As TimeSpan) As Boolean
參數
- timeout
- TimeSpan
等待的間隔,或 -1 毫秒無限期等待。
傳回
如果呼叫執行緒已進入可升級模式,則為 true
;否則為 false
。
例外狀況
RecursionPolicy 屬性為 NoRecursion,且目前的執行緒已進入鎖定狀態。
-或-
目前執行緒一開始已進入讀取模式的鎖定狀態,因此嘗試進入可升級模式可能會造成死結。
-或-
遞迴的次數會超過計數器的容量。 限制過大,使應用程式永遠不會發生這個情形。
備註
如果 timeout
為 0 (零) ,這個方法會檢查鎖定狀態,並在所需的狀態無法使用時立即傳回 false
。
當執行緒通常會存取受讀取模式保護 ReaderWriterLockSlim 的資源時,請使用可升級模式,但如果符合特定條件,可能需要進入寫入模式。 可升級模式中的執行緒可以升級至寫入模式,或降級為讀取模式。
在任何指定的時間,只有一個執行緒可以進入可升級模式的鎖定。 如果執行緒處於可升級模式,而且沒有線程等候進入寫入模式,則其他任何執行緒數目都可以進入讀取模式,即使有線程正在等候進入可升級模式也一樣。
如果一或多個執行緒正在等候進入寫入模式,則呼叫 TryEnterUpgradeableReadLock 方法的執行緒會封鎖,直到這些執行緒逾時或進入寫入模式,然後結束寫入模式,或直到呼叫執行緒自己的逾時間隔到期為止。
注意
如果鎖定允許遞迴,在可升級模式中進入鎖定的執行緒可以遞迴進入可升級模式,即使其他執行緒正在等候進入寫入模式也一樣。