SpinLock.TryEnter 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken
以判斷是否已取得鎖定。
多載
TryEnter(Boolean) |
嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 |
TryEnter(Int32, Boolean) |
嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 |
TryEnter(TimeSpan, Boolean) |
嘗試以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 |
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)
參數
- 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)
參數
- lockTaken
- Boolean
如果取得鎖定則為 true,否則為 false。
lockTaken
必須在呼叫這個方法之前初始化為 false。
例外狀況
timeout
是 -1 毫秒以外的負數,表示無限逾時 -或逾時大於 Int32.MaxValue 毫秒。
lockTaken
引數必須在呼叫 TryEnter 之前初始化為 False。
已啟用執行緒擁有權追蹤,且目前的執行緒已經取得這個鎖定。
備註
不同于 Enter ,TryEnter 不會無限期地封鎖等候鎖定可供使用。 它將會封鎖,直到鎖定可用或直到 timeout
過期為止。