共用方式為


SemaphoreSlim.WaitAsync 方法

定義

以非同步方式等候進入 SemaphoreSlim

多載

WaitAsync(Int32, CancellationToken)

以非同步方式等候進入 SemaphoreSlim,並使用 32 位元帶正負號的整數來測量時間間隔,同時觀察 CancellationToken

WaitAsync()

以非同步方式等候進入 SemaphoreSlim

WaitAsync(Int32)

以非同步方式等候進入 SemaphoreSlim,並使用 32 位元帶正負號的整數來測量時間間隔。

WaitAsync(CancellationToken)

以非同步方式等候進入 SemaphoreSlim,同時觀察 CancellationToken

WaitAsync(TimeSpan)

以非同步方式等候進入 SemaphoreSlim,並使用 TimeSpan 來測量時間間隔。

WaitAsync(TimeSpan, CancellationToken)

以非同步方式等候進入 SemaphoreSlim,並使用 TimeSpan 來測量時間間隔,同時觀察 CancellationToken

WaitAsync(Int32, CancellationToken)

來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs

以非同步方式等候進入 SemaphoreSlim,並使用 32 位元帶正負號的整數來測量時間間隔,同時觀察 CancellationToken

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<bool> WaitAsync (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
member this.WaitAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Task(Of Boolean)

參數

millisecondsTimeout
Int32

要等候的毫秒數,Infinite (-1) 表示永遠等候,零表示測試等候控制代碼的狀態並立即傳回。

cancellationToken
CancellationToken

要觀察的 CancellationToken

傳回

如果目前的執行緒成功進入 SemaphoreSlim,則工作會完成且結果為 true,否則結果為 false

例外狀況

millisecondsTimeout 是 -1 之外的數字,代表無限逾時。

-或-

millisecondsTimeout 大於 Int32.MaxValue

目前的執行個體已經過處置。

cancellationToken 已取消。

備註

如果逾時設定為 -1 毫秒,則方法會無限期等候。

如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候控制碼的狀態,並立即傳回。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Wait(Int32) 例外狀況。

適用於

WaitAsync()

來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs

以非同步方式等候進入 SemaphoreSlim

public:
 System::Threading::Tasks::Task ^ WaitAsync();
public System.Threading.Tasks.Task WaitAsync ();
member this.WaitAsync : unit -> System.Threading.Tasks.Task
Public Function WaitAsync () As Task

傳回

將會在號誌 (Semaphore) 輸入後完成的工作。

例外狀況

備註

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Wait() 例外狀況。

適用於

WaitAsync(Int32)

來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs

以非同步方式等候進入 SemaphoreSlim,並使用 32 位元帶正負號的整數來測量時間間隔。

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(int millisecondsTimeout);
public System.Threading.Tasks.Task<bool> WaitAsync (int millisecondsTimeout);
member this.WaitAsync : int -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (millisecondsTimeout As Integer) As Task(Of Boolean)

參數

millisecondsTimeout
Int32

要等候的毫秒數,Infinite (-1) 表示永遠等候,零表示測試等候控制代碼的狀態並立即傳回。

傳回

如果目前的執行緒成功進入 SemaphoreSlim,則工作會完成且結果為 true,否則結果為 false

例外狀況

目前的執行個體已經過處置。

millisecondsTimeout 是 -1 之外的負數,代表無限逾時。

-或-

millisecondsTimeout 大於 Int32.MaxValue

備註

如果逾時設定為 -1 毫秒,則方法會無限期等候。

如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候控制碼的狀態,並立即傳回。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Wait(Int32) 例外狀況。

適用於

WaitAsync(CancellationToken)

來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs

以非同步方式等候進入 SemaphoreSlim,同時觀察 CancellationToken

public:
 System::Threading::Tasks::Task ^ WaitAsync(System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task WaitAsync (System.Threading.CancellationToken cancellationToken);
member this.WaitAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function WaitAsync (cancellationToken As CancellationToken) As Task

參數

cancellationToken
CancellationToken

要觀察的 CancellationToken 語彙基元。

傳回

將會在號誌 (Semaphore) 輸入後完成的工作。

例外狀況

目前的執行個體已經過處置。

cancellationToken 已取消。

備註

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Wait() 例外狀況。

適用於

WaitAsync(TimeSpan)

來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs

以非同步方式等候進入 SemaphoreSlim,並使用 TimeSpan 來測量時間間隔。

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(TimeSpan timeout);
public System.Threading.Tasks.Task<bool> WaitAsync (TimeSpan timeout);
member this.WaitAsync : TimeSpan -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (timeout As TimeSpan) As Task(Of Boolean)

參數

timeout
TimeSpan

TimeSpan,代表要等候的毫秒數;TimeSpan 為 -1 毫秒表示永遠等候,TimeSpan 為 0 毫秒表示測試等候控制代碼並立即傳回。

傳回

如果目前的執行緒成功進入 SemaphoreSlim,則工作會完成且結果為 true,否則結果為 false

例外狀況

目前的執行個體已經過處置。

timeout 是 -1 之外的負數,代表無限逾時。

-或-

timeout 大於 Int32.MaxValue

備註

如果逾時設定為 -1 毫秒,則方法會無限期等候。

如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候控制碼的狀態,並立即傳回。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Wait(TimeSpan) 例外狀況。

適用於

WaitAsync(TimeSpan, CancellationToken)

來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs
來源:
SemaphoreSlim.cs

以非同步方式等候進入 SemaphoreSlim,並使用 TimeSpan 來測量時間間隔,同時觀察 CancellationToken

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(TimeSpan timeout, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<bool> WaitAsync (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
member this.WaitAsync : TimeSpan * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (timeout As TimeSpan, cancellationToken As CancellationToken) As Task(Of Boolean)

參數

timeout
TimeSpan

TimeSpan,代表要等候的毫秒數;TimeSpan 為 -1 毫秒表示永遠等候,TimeSpan 為 0 毫秒表示測試等候控制代碼並立即傳回。

cancellationToken
CancellationToken

要觀察的 CancellationToken 語彙基元。

傳回

如果目前的執行緒成功進入 SemaphoreSlim,則工作會完成且結果為 true,否則結果為 false

例外狀況

timeout 是 -1 之外的負數,代表無限逾時。

-或-

timeout 大於 Int32.MaxValue

cancellationToken 已取消。

備註

如果逾時設定為 -1 毫秒,則方法會無限期等候。

如果逾時設定為零毫秒,則方法不會封鎖。 它會測試等候控制碼的狀態,並立即傳回。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Wait(TimeSpan) 例外狀況。

適用於