Task.Yield 方法

定义

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

C#
public static System.Runtime.CompilerServices.YieldAwaitable Yield();

返回

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

注解

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

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0