共用方式為


Context::Unblock 方法

解除封鎖內容,並讓它成為可執行。

virtual void Unblock() =0;

備註

先呼叫 Unblock 方法再呼叫 Block 方法是完全合法的。 只要 BlockUnblock 方法的呼叫正確成對,執行階段就會正確地處理任何排序的自然競爭。 在 Block 呼叫之前的 Unblock 呼叫只會取消 Block 呼叫的效果。

此方法可能會傳回數種例外狀況。 如果內容嘗試在其本身呼叫 Unblock 方法,就會擲回 context_self_unblock 例外狀況。 如果 BlockUnblock 的呼叫未正確成對 (例如:對目前正在執行中的內容進行兩次 Unblock 呼叫),就會擲回 context_unblock_unbalanced 例外狀況。

請注意,在程式碼發佈其內容讓其他執行緒能夠呼叫 Unblock 方法的點,以及實際方法呼叫 Block 的點之間有一個重要的句號。 在這個過程中,您不能呼叫為其原因而封鎖及解除封鎖的任何方法 (例如,取得鎖定)。 BlockUnblock 方法的呼叫不會追蹤封鎖和解除封鎖的原因。 只有一個物件可以擁有 BlockUnblock 組的擁有權。

需求

標頭: concrt.h

**命名空間:**concurrency

請參閱

參考

Context 類別

Context::Block 方法

概念

工作排程器 (並行執行階段)