Task.Yield 方法

定义

创建异步产生当前上下文的等待任务。

public:
 static System::Runtime::CompilerServices::YieldAwaitable Yield();
public static System.Runtime.CompilerServices.YieldAwaitable Yield ();
static member Yield : unit -> System.Runtime.CompilerServices.YieldAwaitable
Public Shared Function Yield () As YieldAwaitable

返回

等待时,上下文将异步转换回等待时的当前上下文。 如果当前 SynchronizationContext 不为 null,则将其视为当前上下文。 否则,与当前执行任务关联的任务计划程序将视为当前上下文。

注解

可以在 await Task.Yield(); 异步方法中使用 以强制方法异步完成。 如果当前同步上下文 (SynchronizationContext 对象) ,则会将方法执行的其余部分发回该上下文。 但是,上下文将决定如何相对于可能挂起的其他工作确定此工作的优先级。 大多数 UI 环境中的 UI 线程上存在的同步上下文通常会优先处理发布到上下文的工作,而不是输入和呈现工作。 出于此原因,不要依赖 await Task.Yield(); 来保持 UI 响应。 有关详细信息,请参阅使用 .NET 并行编程博客中的“ 通过 ContinueWith 启用有用的抽象 ”一文。

适用于