Lock.TryEnter 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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 的<備註>。