言語

ReentrantSemaphore.ExecuteAsync メソッド

定義

オーバーロード

名前 説明
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 が指定された場合、このデリゲートはメイン スレッドで呼び出された場合はメイン スレッドで実行され、それ以外の場合はスレッド プールで呼び出されます。 コンストラクターに 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 が指定された場合、このデリゲートはメイン スレッドで呼び出された場合はメイン スレッドで実行され、それ以外の場合はスレッド プールで呼び出されます。 コンストラクターに JoinableTaskContext が指定されていない場合、このデリゲートは呼び出し元のコンテキストで実行されます。

cancellationToken
CancellationToken

キャンセル トークン。

返品

セマフォが終了した後、 operationの結果で完了するタスク。

例外

コンストラクターに NotAllowed が提供されているため、再入が検出され、許可されていない場合にスローされます。 これは、セマフォを既に保持しているコードが、セマフォに再び入ろうとするコードを呼び出す場合に発生します。 呼び出されたコードが呼び出し元によって待機されていない場合は、ファイア アンド フォーゲット方式で呼び出されるメソッドに対するこの再入検出を抑制することが適切な場合があります。 全体的な保護を維持しながら、その特定のケースに対するこの例外を抑制するには、 SuppressRelevance()を使用します。

適用対象