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
其完成应指示返回的 awaitable 完成的任务。
- 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
其完成应指示返回的 awaitable 完成的任务。
- 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>
其完成应指示返回的 awaitable 完成的任务。
- 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;
}