次の方法で共有


TplExtensions.NoThrowAwaitable メソッド

定義

オーバーロード

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;
}

適用対象