ReaderWriterLockSlim.TryEnterUpgradeableReadLock 方法

定義

嘗試以選用的逾時,在可升級模式下進入鎖定狀態。

多載

TryEnterUpgradeableReadLock(Int32)

嘗試以選用的逾時,在可升級模式下進入鎖定狀態。

TryEnterUpgradeableReadLock(TimeSpan)

嘗試以選用的逾時,在可升級模式下進入鎖定狀態。

TryEnterUpgradeableReadLock(Int32)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs

嘗試以選用的逾時,在可升級模式下進入鎖定狀態。

public:
 bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
public bool TryEnterUpgradeableReadLock (int millisecondsTimeout);
member this.TryEnterUpgradeableReadLock : int -> bool
Public Function TryEnterUpgradeableReadLock (millisecondsTimeout As Integer) As Boolean

參數

millisecondsTimeout
Int32

要等候的毫秒數;若要永遠等候,則為 -1 (Infinite)。

傳回

如果呼叫執行緒已進入可升級模式,則為 true;否則為 false

例外狀況

RecursionPolicy 屬性為 NoRecursion,且目前的執行緒已進入鎖定狀態。

-或-

目前執行緒一開始已進入讀取模式的鎖定狀態,因此嘗試進入可升級模式可能會造成死結。

-或-

遞迴的次數會超過計數器的容量。 限制過大,使應用程式永遠不會發生這個情形。

millisecondsTimeout 的值為負,但不等於 Infinite (-1),這是唯一允許的負值。

備註

如果 millisecondsTimeout 為 0 (零) ,這個方法會檢查鎖定狀態,並在所需的狀態無法使用時立即傳回 false

當執行緒通常會存取受讀取模式保護 ReaderWriterLockSlim 的資源時,請使用可升級模式,但如果符合特定條件,可能需要進入寫入模式。 可升級模式中的執行緒可以升級至寫入模式,或降級為讀取模式。

在任何指定的時間,只有一個執行緒可以進入可升級模式的鎖定。 如果執行緒處於可升級模式,而且沒有線程等候進入寫入模式,則其他任何執行緒數目都可以進入讀取模式,即使有線程正在等候進入可升級模式也一樣。

如果一或多個執行緒正在等候進入寫入模式,則呼叫 TryEnterUpgradeableReadLock 方法的執行緒會封鎖,直到這些執行緒逾時或進入寫入模式,然後結束寫入模式,或直到呼叫執行緒自己的逾時間隔到期為止。

注意

如果鎖定允許遞迴,在可升級模式中進入鎖定的執行緒可以遞迴進入可升級模式,即使其他執行緒正在等候進入寫入模式也一樣。

適用於

TryEnterUpgradeableReadLock(TimeSpan)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs

嘗試以選用的逾時,在可升級模式下進入鎖定狀態。

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 的值為負,但不等於 -1 毫秒,這是唯一允許的負值。

-或-

的值 timeout 大於 Int32.MaxValue 毫秒。

備註

如果 timeout 為 0 (零) ,這個方法會檢查鎖定狀態,並在所需的狀態無法使用時立即傳回 false

當執行緒通常會存取受讀取模式保護 ReaderWriterLockSlim 的資源時,請使用可升級模式,但如果符合特定條件,可能需要進入寫入模式。 可升級模式中的執行緒可以升級至寫入模式,或降級為讀取模式。

在任何指定的時間,只有一個執行緒可以進入可升級模式的鎖定。 如果執行緒處於可升級模式,而且沒有線程等候進入寫入模式,則其他任何執行緒數目都可以進入讀取模式,即使有線程正在等候進入可升級模式也一樣。

如果一或多個執行緒正在等候進入寫入模式,則呼叫 TryEnterUpgradeableReadLock 方法的執行緒會封鎖,直到這些執行緒逾時或進入寫入模式,然後結束寫入模式,或直到呼叫執行緒自己的逾時間隔到期為止。

注意

如果鎖定允許遞迴,在可升級模式中進入鎖定的執行緒可以遞迴進入可升級模式,即使其他執行緒正在等候進入寫入模式也一樣。

適用於