語言

ReentrantSemaphore.ExecuteAsync 方法

定義

多載

名稱 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

參數

operation
Func<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

操作回傳的值類型。

參數

operation
Func<ValueTask<T>>

代表在輸入信號板後啟動。 若 JoinableTaskContext a 被提供給建構子,若在主執行緒中呼叫,該代理會在主執行緒執行,否則會在執行緒池中被呼叫。 當向建構者提供 no JoinableTaskContext 時,該代理會在呼叫者的上下文中執行。

cancellationToken
CancellationToken

取消令牌。

傳回

一個任務,在 operation信號量結束後,結果為 。

例外狀況

當偵測到再進入且因提供給建造者而不允許 NotAllowed 時丟出。 當已持有信號量的代碼呼叫嘗試再次輸入信號量的代碼時,會發生這種情況。 當呼叫者未等待被呼叫的程式碼時,可能適合以「發射後忘記」方式抑制此重入偵測。 為了在該特定情況下排除此例外,同時保留整體保護,請使用 SuppressRelevance()。

適用於