SpinLock.Enter(Boolean) 方法

定義

以可靠的方式取得鎖定,例如即使方法呼叫中發生例外狀況,還是能可靠地檢查 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 狀態可能會損毀。

適用於

另請參閱