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
Namespace: 並行存取