Task.Yield 方法
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建异步产生当前上下文的等待任务。
public:
static System::Runtime::CompilerServices::YieldAwaitable Yield();
C#
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 启用有用的抽象 ”一文。
产品 | 版本 |
---|---|
.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 |