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

若鎖定為真;否則,則為錯誤。 lockTaken 必須先初始化為 false 才能呼叫此方法。

例外狀況

在呼叫 Enter 之前,該 lockTaken 參數必須先初始化為 false。

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

備註

SpinLock 是非重入鎖,意即如果一個螺緒持有鎖,就不允許它再次進入鎖。 如果啟用執行緒所有權追蹤(是否啟用可透過 IsThreadOwnerTrackingEnabled查詢),當執行緒嘗試重新進入已持有的鎖時,會拋出例外。 然而,若關閉執行緒所有權追蹤,嘗試輸入已持有的鎖將導致死結。

如果你在沒先打電話Exit前就打電話Enter,內部狀態SpinLock可能會被破壞。

適用於

另請參閱