SpinLock.TryEnter 方法

定義

嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken 以判斷是否已取得鎖定。

多載

TryEnter(Boolean)

嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken 以判斷是否已取得鎖定。

TryEnter(Int32, Boolean)

嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken 以判斷是否已取得鎖定。

TryEnter(TimeSpan, Boolean)

嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken 以判斷是否已取得鎖定。

TryEnter(Boolean)

來源:
SpinLock.cs
來源:
SpinLock.cs
來源:
SpinLock.cs

嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken 以判斷是否已取得鎖定。

public:
 void TryEnter(bool % lockTaken);
public void TryEnter (ref bool lockTaken);
member this.TryEnter : bool -> unit
Public Sub TryEnter (ByRef lockTaken As Boolean)

參數

lockTaken
Boolean

如果取得鎖定則為 true,否則為 false。 lockTaken 必須在呼叫這個方法之前初始化為 false。

例外狀況

lockTaken 引數必須在呼叫 TryEnter 之前初始化為 False。

已啟用執行緒擁有權追蹤,且目前的執行緒已經取得這個鎖定。

備註

不同于 Enter ,TryEnter 不會封鎖等候鎖定可供使用。 如果呼叫 TryEnter 時無法使用鎖定,它會立即傳回,而不需進一步旋轉。

另請參閱

適用於

TryEnter(Int32, Boolean)

來源:
SpinLock.cs
來源:
SpinLock.cs
來源:
SpinLock.cs

嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken 以判斷是否已取得鎖定。

public:
 void TryEnter(int millisecondsTimeout, bool % lockTaken);
public void TryEnter (int millisecondsTimeout, ref bool lockTaken);
member this.TryEnter : int * bool -> unit
Public Sub TryEnter (millisecondsTimeout As Integer, ByRef lockTaken As Boolean)

參數

millisecondsTimeout
Int32

要等候的毫秒數,如果要無限期等候,則為 Infinite (-1)。

lockTaken
Boolean

如果取得鎖定則為 true,否則為 false。 lockTaken 必須在呼叫這個方法之前初始化為 false。

例外狀況

millisecondsTimeout 為 -1 以外的負數,表示無限逾時。

lockTaken 引數必須在呼叫 TryEnter 之前初始化為 False。

已啟用執行緒擁有權追蹤,且目前的執行緒已經取得這個鎖定。

備註

不同于 Enter ,TryEnter 不會無限期地封鎖等候鎖定可供使用。 它將會封鎖,直到鎖定可用或直到 millisecondsTimeout 過期為止。

另請參閱

適用於

TryEnter(TimeSpan, Boolean)

來源:
SpinLock.cs
來源:
SpinLock.cs
來源:
SpinLock.cs

嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken 以判斷是否已取得鎖定。

public:
 void TryEnter(TimeSpan timeout, bool % lockTaken);
public void TryEnter (TimeSpan timeout, ref bool lockTaken);
member this.TryEnter : TimeSpan * bool -> unit
Public Sub TryEnter (timeout As TimeSpan, ByRef lockTaken As Boolean)

參數

timeout
TimeSpan

TimeSpan,代表等候毫秒數;或是 TimeSpan,代表無限期等候的 -1 毫秒。

lockTaken
Boolean

如果取得鎖定則為 true,否則為 false。 lockTaken 必須在呼叫這個方法之前初始化為 false。

例外狀況

timeout 是 -1 毫秒以外的負數,表示無限逾時 -或逾時大於 Int32.MaxValue 毫秒。

lockTaken 引數必須在呼叫 TryEnter 之前初始化為 False。

已啟用執行緒擁有權追蹤,且目前的執行緒已經取得這個鎖定。

備註

不同于 Enter ,TryEnter 不會無限期地封鎖等候鎖定可供使用。 它將會封鎖,直到鎖定可用或直到 timeout 過期為止。

另請參閱

適用於