Task.Yield メソッド

定義

待機されたときに現在のコンテキストに非同期的に処理を譲る awaitable タスクを作成します。

public:
 static System::Runtime::CompilerServices::YieldAwaitable Yield();
public static System.Runtime.CompilerServices.YieldAwaitable Yield ();
static member Yield : unit -> System.Runtime.CompilerServices.YieldAwaitable
Public Shared Function Yield () As YieldAwaitable

戻り値

必要な場合は、要求時に現在のコンテキストに非同期で再度遷移するコンテキスト。 現在の SynchronizationContext が null 以外の場合は、現在のコンテキストとして扱われます。 それ以外の場合は、現在の実行タスクに関連付けられているタスク スケジューラは、現在のコンテキストとして扱われます。

注釈

非同期メソッドで を使用 await Task.Yield(); して、メソッドを強制的に非同期的に完了させることができます。 現在の同期コンテキスト (SynchronizationContext オブジェクト) がある場合、メソッドの実行の残りの部分がそのコンテキストにポストされます。 ただし、コンテキストによって、保留中の可能性がある他の作業と比較して、この作業に優先順位を付ける方法が決定されます。 ほとんどの UI 環境の UI スレッドに存在する同期コンテキストは、多くの場合、入力とレンダリング作業よりも高いコンテキストに投稿された作業に優先順位を付けます。 このため、UI の応答性を維持するために に await Task.Yield(); 依存しないでください。 詳細については、「.NET での並列プログラミング」ブログの「 ContinueWith で有効な便利な抽象化 」のエントリを参照してください。

適用対象