SemaphoreSlim.Wait 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
封鎖目前的線程,直到它可以進入 SemaphoreSlim。
多載
Wait(TimeSpan, CancellationToken) |
封鎖目前的線程,直到它可以使用指定逾時 TimeSpan 來輸入 SemaphoreSlim,同時觀察 CancellationToken。 |
Wait(Int32, CancellationToken) |
封鎖目前的線程 SemaphoreSlim,直到它可以使用指定逾時的 32 位帶正負號整數,同時觀察 CancellationToken。 |
Wait(TimeSpan) |
封鎖目前線程,直到可以使用 TimeSpan 來指定逾時,才能進入 SemaphoreSlim。 |
Wait(Int32) |
封鎖目前的線程,直到它可以使用指定逾時的32位帶正負號整數進入 SemaphoreSlim為止。 |
Wait() |
封鎖目前的線程,直到它可以進入 SemaphoreSlim。 |
Wait(CancellationToken) |
封鎖目前的線程,直到它可以進入 SemaphoreSlim,同時觀察 CancellationToken。 |
Wait(TimeSpan, CancellationToken)
封鎖目前的線程,直到它可以使用指定逾時 TimeSpan 來輸入 SemaphoreSlim,同時觀察 CancellationToken。
public:
bool Wait(TimeSpan timeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : TimeSpan * System.Threading.CancellationToken -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : TimeSpan * System.Threading.CancellationToken -> bool
Public Function Wait (timeout As TimeSpan, cancellationToken As CancellationToken) As Boolean
參數
- cancellationToken
- CancellationToken
要觀察的 CancellationToken。
傳回
如果目前線程成功進入 SemaphoreSlim,true
;否則,false
。
- 屬性
例外狀況
cancellationToken
已取消。
備註
如果逾時設定為 -1 毫秒,方法會無限期等候。
如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候句柄的狀態,並立即傳回。
如果線程或工作能夠進入號誌,它會將 CurrentCount 屬性遞減一。
如果取消 cancellationToken
,或在呼叫 Wait(TimeSpan, CancellationToken) 時封鎖線程或工作,且 millisecondsTimeout
指定的逾時間隔到期:
- 線程或工作未輸入號誌。
- CurrentCount 屬性不會遞減。
如果取消 cancellationToken
,方法會擲回 OperationCanceledException 例外狀況。
另請參閱
適用於
Wait(Int32, CancellationToken)
封鎖目前的線程 SemaphoreSlim,直到它可以使用指定逾時的 32 位帶正負號整數,同時觀察 CancellationToken。
public:
bool Wait(int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : int * System.Threading.CancellationToken -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : int * System.Threading.CancellationToken -> bool
Public Function Wait (millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Boolean
參數
- cancellationToken
- CancellationToken
要觀察的 CancellationToken。
傳回
如果目前線程成功進入 SemaphoreSlim,true
;否則,false
。
- 屬性
例外狀況
cancellationToken
已取消。
已處置 SemaphoreSlim 實例,或已處置建立 cancellationToken
的 CancellationTokenSource。
備註
如果逾時設定為 -1 毫秒,方法會無限期等候。
如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候句柄的狀態,並立即傳回。
如果線程或工作能夠進入號誌,它會將 CurrentCount 屬性遞減一。
如果取消 cancellationToken
,或在呼叫 Wait(Int32, CancellationToken) 時封鎖線程或工作,且 millisecondsTimeout
指定的逾時間隔到期:
- 線程或工作未輸入號誌。
- CurrentCount 屬性不會遞減。
如果取消 cancellationToken
,方法會擲回 OperationCanceledException 例外狀況。
另請參閱
適用於
Wait(TimeSpan)
封鎖目前線程,直到可以使用 TimeSpan 來指定逾時,才能進入 SemaphoreSlim。
public:
bool Wait(TimeSpan timeout);
public bool Wait (TimeSpan timeout);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (TimeSpan timeout);
member this.Wait : TimeSpan -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : TimeSpan -> bool
Public Function Wait (timeout As TimeSpan) As Boolean
參數
傳回
如果目前線程成功進入 SemaphoreSlim,true
;否則,false
。
- 屬性
例外狀況
旗號Slim 實例已處置。
備註
如果逾時設定為 -1 毫秒,方法會無限期等候。
如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候句柄的狀態,並立即傳回。
如果線程或工作能夠進入號誌,它會將 CurrentCount 屬性遞減一。
如果在呼叫 Wait(TimeSpan) 時封鎖線程或工作,且 millisecondsTimeout
指定的逾時間隔到期:
- 線程或工作未輸入號誌。
- CurrentCount 屬性不會遞減。
另請參閱
適用於
Wait(Int32)
封鎖目前的線程,直到它可以使用指定逾時的32位帶正負號整數進入 SemaphoreSlim為止。
public:
bool Wait(int millisecondsTimeout);
public bool Wait (int millisecondsTimeout);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (int millisecondsTimeout);
member this.Wait : int -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : int -> bool
Public Function Wait (millisecondsTimeout As Integer) As Boolean
參數
傳回
如果目前線程成功進入 SemaphoreSlim,true
;否則,false
。
- 屬性
例外狀況
millisecondsTimeout
是 -1 以外的負數,代表無限逾時 -或逾時大於 Int32.MaxValue。
備註
如果逾時設定為 -1 毫秒,方法會無限期等候。
如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候句柄的狀態,並立即傳回。
如果線程或工作能夠進入號誌,它會將 CurrentCount 屬性遞減一。
如果在呼叫 Wait(Int32) 時封鎖線程或工作,且 millisecondsTimeout
指定的逾時間隔到期:
- 線程或工作未輸入號誌。
- CurrentCount 屬性不會遞減。
另請參閱
適用於
Wait()
封鎖目前的線程,直到它可以進入 SemaphoreSlim。
public:
void Wait();
public void Wait ();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Wait ();
member this.Wait : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : unit -> unit
Public Sub Wait ()
- 屬性
例外狀況
目前的實例已經處置。
備註
如果線程或工作能夠進入號誌,它會將 CurrentCount 屬性遞減一。
另請參閱
適用於
Wait(CancellationToken)
封鎖目前的線程,直到它可以進入 SemaphoreSlim,同時觀察 CancellationToken。
public:
void Wait(System::Threading::CancellationToken cancellationToken);
public void Wait (System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Wait (System.Threading.CancellationToken cancellationToken);
member this.Wait : System.Threading.CancellationToken -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : System.Threading.CancellationToken -> unit
Public Sub Wait (cancellationToken As CancellationToken)
參數
- cancellationToken
- CancellationToken
要觀察的 CancellationToken 標記。
- 屬性
例外狀況
cancellationToken
已取消。
備註
如果線程或工作能夠進入號誌,它會將 CurrentCount 屬性遞減一。
如果取消 cancellationToken
,線程或工作就不會進入號誌,而且不會遞減 CurrentCount 屬性。 相反地,方法會擲回 OperationCanceledException 例外狀況。