SpinLock.Enter(Boolean) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 lockTaken
以判斷是否已取得鎖定。
public:
void Enter(bool % lockTaken);
public void Enter (ref bool lockTaken);
member this.Enter : bool -> unit
Public Sub Enter (ByRef lockTaken As Boolean)
參數
- lockTaken
- Boolean
如果取得鎖定則為 true,否則為 false。 lockTaken
必須在呼叫這個方法之前初始化為 false。
例外狀況
lockTaken
引數必須在呼叫 Enter 之前初始化為 False。
已啟用執行緒擁有權追蹤,且目前的執行緒已經取得這個鎖定。
備註
SpinLock 是非重新進入鎖定,表示如果執行緒持有鎖定,則不允許再次輸入鎖定。 如果已啟用執行緒擁有權追蹤, (是否已啟用它是否可透過 IsThreadOwnerTrackingEnabled) 取得,當執行緒嘗試重新輸入已保留的鎖定時,將會擲回例外狀況。 不過,如果執行緒擁有權追蹤已停用,嘗試輸入已保留的鎖定會導致死結。
如果您 Exit 呼叫 而不先呼叫 Enter 的內部 SpinLock 狀態可能會損毀。