TplExtensions.NoThrowAwaitable メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
NoThrowAwaitable(Task, Boolean) |
ソース タスクが異常終了したり取り消された場合でも、スローしない指定のタスクの awaitable を返します。 |
NoThrowAwaitable(ValueTask, Boolean) |
ソース タスクが異常終了したり取り消された場合でも、スローしない指定のタスクの awaitable を返します。 |
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean) |
ソース タスクが異常終了したり取り消された場合でも、スローしない指定のタスクの awaitable を返します。 |
NoThrowAwaitable(Task, Boolean)
ソース タスクが異常終了したり取り消された場合でも、スローしない指定のタスクの awaitable を返します。
public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowTaskAwaitable NoThrowAwaitable (this System.Threading.Tasks.Task task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.Task * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowTaskAwaitable
<Extension()>
Public Function NoThrowAwaitable (task As Task, Optional captureContext As Boolean = true) As TplExtensions.NoThrowTaskAwaitable
パラメーター
- task
- Task
完了が返された待機可能の完了を通知するタスク。
- captureContext
- Boolean
継続に true
設定されている場合は、呼び出し元のコンテキスト false
でスケジュールされます。常にスレッドプールで継続を実行します。
戻り値
待機可能。
適用対象
NoThrowAwaitable(ValueTask, Boolean)
ソース タスクが異常終了したり取り消された場合でも、スローしない指定のタスクの awaitable を返します。
public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable NoThrowAwaitable (this System.Threading.Tasks.ValueTask task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.ValueTask * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable
<Extension()>
Public Function NoThrowAwaitable (task As ValueTask, Optional captureContext As Boolean = true) As TplExtensions.NoThrowValueTaskAwaitable
パラメーター
- task
- ValueTask
完了が返された待機可能の完了を通知するタスク。
- captureContext
- Boolean
継続に true
設定されている場合は、呼び出し元のコンテキスト false
でスケジュールされます。常にスレッドプールで継続を実行します。
戻り値
待機可能。
適用対象
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)
ソース タスクが異常終了したり取り消された場合でも、スローしない指定のタスクの awaitable を返します。
public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable<TResult> NoThrowAwaitable<TResult> (this System.Threading.Tasks.ValueTask<TResult> task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.ValueTask<'Result> * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable<'Result>
<Extension()>
Public Function NoThrowAwaitable(Of TResult) (task As ValueTask(Of TResult), Optional captureContext As Boolean = true) As TplExtensions.NoThrowValueTaskAwaitable(Of TResult)
型パラメーター
- TResult
結果の型。
パラメーター
- task
- ValueTask<TResult>
完了が返された待機可能の完了を通知するタスク。
- captureContext
- Boolean
継続に true
設定されている場合は、呼び出し元のコンテキスト false
でスケジュールされます。常にスレッドプールで継続を実行します。
戻り値
待機可能。
注釈
このメソッドによって返される待機可能な は、正常に完了 ValueTask<TResult>した の結果へのアクセスを提供しません。 をスローせずに待機し、結果の値を使用するには、次のパターンを使用できます。
var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
var result = methodValueTask.Result;
}
else
{
var exception = methodValueTask.AsTask().Exception.InnerException;
}