다음을 통해 공유


TplExtensions.NoThrowAwaitable 메서드

정의

오버로드

NoThrowAwaitable(Task, Boolean)

원본 작업에 오류가 있거나 취소된 경우에도 절대 throw되지 않을 지정 작업의 awaitable을 반환합니다.

NoThrowAwaitable(ValueTask, Boolean)

원본 작업에 오류가 있거나 취소된 경우에도 절대 throw되지 않을 지정 작업의 awaitable을 반환합니다.

NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)

원본 작업에 오류가 있거나 취소된 경우에도 절대 throw되지 않을 지정 작업의 awaitable을 반환합니다.

NoThrowAwaitable(Task, Boolean)

원본 작업에 오류가 있거나 취소된 경우에도 절대 throw되지 않을 지정 작업의 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

완료가 반환된 awaitable의 완료를 알리는 작업입니다.

captureContext
Boolean

연속으로 true 설정하면 호출자의 컨텍스트 false 에서 예약됩니다. 스레드 풀에서 항상 연속을 실행합니다.

반환

대기 가능한 입니다.

적용 대상

NoThrowAwaitable(ValueTask, Boolean)

원본 작업에 오류가 있거나 취소된 경우에도 절대 throw되지 않을 지정 작업의 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

완료가 반환된 awaitable의 완료를 알리는 작업입니다.

captureContext
Boolean

연속으로 true 설정하면 호출자의 컨텍스트 false 에서 예약됩니다. 스레드 풀에서 항상 연속을 실행합니다.

반환

대기 가능한 입니다.

적용 대상

NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)

원본 작업에 오류가 있거나 취소된 경우에도 절대 throw되지 않을 지정 작업의 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>

완료가 반환된 awaitable의 완료를 알리는 작업입니다.

captureContext
Boolean

연속으로 true 설정하면 호출자의 컨텍스트 false 에서 예약됩니다. 스레드 풀에서 항상 연속을 실행합니다.

반환

대기 가능한 입니다.

설명

이 메서드에서 반환된 awaitable은 성공적으로 완료된 ValueTask<TResult>의 결과에 대한 액세스를 제공하지 않습니다. 을 throw하지 않고 대기하고 결과 값을 사용하려면 다음 패턴을 사용할 수 있습니다.

var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
  var result = methodValueTask.Result;
}
else
{
  var exception = methodValueTask.AsTask().Exception.InnerException;
}

적용 대상