TplExtensions.NoThrowAwaitable 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
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;
}