ReentrantSemaphore.ExecuteAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| 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 が指定された場合、このデリゲートはメイン スレッドで呼び出された場合はメイン スレッドで実行され、それ以外の場合はスレッド プールで呼び出されます。 コンストラクターに 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 が指定された場合、このデリゲートはメイン スレッドで呼び出された場合はメイン スレッドで実行され、それ以外の場合はスレッド プールで呼び出されます。 コンストラクターに JoinableTaskContext が指定されていない場合、このデリゲートは呼び出し元のコンテキストで実行されます。
- cancellationToken
- CancellationToken
キャンセル トークン。
返品
セマフォが終了した後、 operationの結果で完了するタスク。
例外
コンストラクターに NotAllowed が提供されているため、再入が検出され、許可されていない場合にスローされます。 これは、セマフォを既に保持しているコードが、セマフォに再び入ろうとするコードを呼び出す場合に発生します。 呼び出されたコードが呼び出し元によって待機されていない場合は、ファイア アンド フォーゲット方式で呼び出されるメソッドに対するこの再入検出を抑制することが適切な場合があります。 全体的な保護を維持しながら、その特定のケースに対するこの例外を抑制するには、 SuppressRelevance()を使用します。