Context::Unblock 方法

取消阻止上下文并使其可运行。

virtual void Unblock() =0;

备注

在对 Block 方法进行相应调用之前调用 Unblock 方法是相当合法的。只要对 BlockUnblock 方法的调用恰当地配对,运行时就会正确处理任何顺序的自然争用。在 Block 调用简单地否定 Block 调用的效果之前进行的 Unblock 调用。

该方法可引发数种异常。如果上下文尝试调用本身的 Unblock 方法,则会引发 context_self_unblock 异常。如果调用 Block ,并 Unblock 未正确对 (例如,两个调用。 Unblock 为当前运行) 的上下文中, context_unblock_unbalanced 会引发异常。

请注意,代码为另一个线程发布其上下文以调用 Unblock 方法与实际调用 Block 方法之间的重要时间段。在此时间段内,不能调用例如可以为自己的原因而阻止和取消阻止的任何方法 (,获取锁)。对 BlockUnblock 方法的调用不跟踪阻止和取消阻止的理由。只有一个对象应拥有 BlockUnblock 对的所有权。

要求

**标头:**concrt.h

命名空间: 并发

请参见

参考

Context 类

Context::Block 方法

概念

任务计划程序(并发运行时)