Context::Unblock 方法

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

virtual void Unblock() =0;

备注

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

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

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

要求

**标头:**concrt.h

命名空间: 并发

请参见

参考

Context 类

Context::Block 方法

概念

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