共用方式為


Lock.TryEnter 方法

定義

多載

TryEnter()

嘗試在不等待的情況下輸入鎖定。

TryEnter(Int32)

嘗試輸入鎖定,視需要等候指定的毫秒數,直到可以輸入鎖定為止。

TryEnter(TimeSpan)

嘗試輸入鎖定,視需要等候,直到可以輸入鎖定或直到指定的逾時到期為止。

TryEnter()

來源:
Lock.cs

嘗試在不等待的情況下輸入鎖定。

public:
 bool TryEnter();
public bool TryEnter ();
member this.TryEnter : unit -> bool
Public Function TryEnter () As Boolean

傳回

true 如果目前線程已輸入鎖定,則為 ;否則為 false

例外狀況

鎖定已達到目前線程重複專案的限制。 此限制是實作定義的,而且其用途是夠高,無法在正常情況下達到。

備註

當方法傳 true回 時,目前的線程是唯一保留鎖定的線程。 如果無法立即輸入鎖定,方法會傳回 false 而不等待鎖定。 如果鎖定已經由目前線程持有,則會再次輸入鎖定。 若要完整結束鎖定並允許其他線程進入鎖定,目前的線程應該會結束鎖定的次數,因為它已進入鎖定的次數。

如需詳細資訊,請參閱 Lock 的<備註>。

適用於

TryEnter(Int32)

來源:
Lock.cs

嘗試輸入鎖定,視需要等候指定的毫秒數,直到可以輸入鎖定為止。

public:
 bool TryEnter(int millisecondsTimeout);
public bool TryEnter (int millisecondsTimeout);
member this.TryEnter : int -> bool
Public Function TryEnter (millisecondsTimeout As Integer) As Boolean

參數

millisecondsTimeout
Int32

等候直到可以輸入鎖定的毫秒數。 指定 Timeout.Infinite (-1) 無限期等候,或 0 不等候。

傳回

true 如果目前線程已輸入鎖定,則為 ;否則為 false

例外狀況

millisecondsTimeout 小於 -1

鎖定已達到目前線程重複專案的限制。 此限制是實作定義的,而且其用途是夠高,無法在正常情況下達到。

備註

當方法傳 true回 時,目前的線程是唯一保留鎖定的線程。 如果無法立即輸入鎖定,方法會等到可以輸入鎖定,或直到參數指定的 millisecondsTimeout 逾時到期為止。 如果逾時在輸入鎖定之前過期,方法會傳 false回 。 如果鎖定已經由目前線程持有,則會再次輸入鎖定。 若要完整結束鎖定並允許其他線程進入鎖定,目前的線程應該會結束鎖定的次數,因為它已進入鎖定的次數。

如需詳細資訊,請參閱 Lock 的<備註>。

適用於

TryEnter(TimeSpan)

來源:
Lock.cs

嘗試輸入鎖定,視需要等候,直到可以輸入鎖定或直到指定的逾時到期為止。

public:
 bool TryEnter(TimeSpan timeout);
public bool TryEnter (TimeSpan timeout);
member this.TryEnter : TimeSpan -> bool
Public Function TryEnter (timeout As TimeSpan) As Boolean

參數

timeout
TimeSpan

TimeSpan 表示等候鎖定進入的毫秒數。 指定值,表示 Timeout.Infinite (-1) 毫秒無限期等候,或表示 0 不等候毫秒的值。

傳回

true 如果目前線程已輸入鎖定,則為 ;否則為 false

例外狀況

timeout在轉換成整數毫秒值之後,表示小於 -1 毫秒或大於 Int32.MaxValue 毫秒的值。

鎖定已達到目前線程重複專案的限制。 此限制是實作定義的,而且其用途是夠高,無法在正常情況下達到。

備註

當方法傳 true回 時,目前的線程是唯一保留鎖定的線程。 如果無法立即輸入鎖定,方法會等到可以輸入鎖定或直到指定的 timeout 到期為止。 如果逾時在輸入鎖定之前過期,方法會傳 false回 。 如果鎖定已經由目前線程持有,則會再次輸入鎖定。 若要完整結束鎖定並允許其他線程進入鎖定,目前的線程應該會結束鎖定的次數,因為它已進入鎖定的次數。

如需詳細資訊,請參閱 Lock 的<備註>。

適用於