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