Context::Unblock 方法
解除封鎖內容,並讓它成為可執行。
virtual void Unblock() =0;
備註
先呼叫 Unblock 方法再呼叫 Block 方法是完全合法的。 只要 Block 和 Unblock 方法的呼叫正確成對,執行階段就會正確地處理任何排序的自然競爭。 在 Block 呼叫之前的 Unblock 呼叫只會取消 Block 呼叫的效果。
此方法可能會傳回數種例外狀況。 如果內容嘗試在其本身呼叫 Unblock 方法,就會擲回 context_self_unblock 例外狀況。 如果 Block 和 Unblock 的呼叫未正確成對 (例如:對目前正在執行中的內容進行兩次 Unblock 呼叫),就會擲回 context_unblock_unbalanced 例外狀況。
請注意,在程式碼發佈其內容讓其他執行緒能夠呼叫 Unblock 方法的點,以及實際方法呼叫 Block 的點之間有一個重要的句號。 在這個過程中,您不能呼叫為其原因而封鎖及解除封鎖的任何方法 (例如,取得鎖定)。 Block 和 Unblock 方法的呼叫不會追蹤封鎖和解除封鎖的原因。 只有一個物件可以擁有 Block 和 Unblock 組的擁有權。
需求
標頭: concrt.h
**命名空間:**concurrency