ReentrantSemaphore.ExecuteAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| ExecuteAsync(Func<Task>, CancellationToken) |
在信號量內執行特定操作。 |
| ExecuteAsync<T>(Func<ValueTask<T>>, CancellationToken) |
在信號量內執行特定操作。 |
ExecuteAsync(Func<Task>, CancellationToken)
在信號量內執行特定操作。
public abstract System.Threading.Tasks.Task ExecuteAsync(Func<System.Threading.Tasks.Task> operation, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteAsync : Func<System.Threading.Tasks.Task> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public MustOverride Function ExecuteAsync (operation As Func(Of Task), Optional cancellationToken As CancellationToken = Nothing) As Task
參數
代表在輸入信號板後啟動。 若 JoinableTaskContext a 被提供給建構子,若在主執行緒中呼叫,該代理會在主執行緒執行,否則會在執行緒池中被呼叫。 當向建構者提供 no JoinableTaskContext 時,該代理會在呼叫者的上下文中執行。
- cancellationToken
- CancellationToken
取消令牌。
傳回
一個任務,在 operation信號量結束後,結果為 。
適用於
ExecuteAsync<T>(Func<ValueTask<T>>, CancellationToken)
在信號量內執行特定操作。
public abstract System.Threading.Tasks.ValueTask<T> ExecuteAsync<T>(Func<System.Threading.Tasks.ValueTask<T>> operation, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteAsync : Func<System.Threading.Tasks.ValueTask<'T>> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<'T>
Public MustOverride Function ExecuteAsync(Of T) (operation As Func(Of ValueTask(Of T)), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of T)
類型參數
- T
操作回傳的值類型。
參數
代表在輸入信號板後啟動。 若 JoinableTaskContext a 被提供給建構子,若在主執行緒中呼叫,該代理會在主執行緒執行,否則會在執行緒池中被呼叫。 當向建構者提供 no JoinableTaskContext 時,該代理會在呼叫者的上下文中執行。
- cancellationToken
- CancellationToken
取消令牌。
傳回
一個任務,在 operation信號量結束後,結果為 。
例外狀況
當偵測到再進入且因提供給建造者而不允許 NotAllowed 時丟出。 當已持有信號量的代碼呼叫嘗試再次輸入信號量的代碼時,會發生這種情況。 當呼叫者未等待被呼叫的程式碼時,可能適合以「發射後忘記」方式抑制此重入偵測。 為了在該特定情況下排除此例外,同時保留整體保護,請使用 SuppressRelevance()。