Context::Unblock 메서드
컨텍스트를 차단 해제하고 실행할 수 없게 만듭니다.
virtual void Unblock() =0;
설명
Block 메서드에 대한 해당 호출 전에 Unblock 메서드에 대한 호출이 발생하는 것이 완벽하게 합법적입니다. Block 및 Unblock 메서드에 대한 호출이 적절히 쌍을 이루는 경우 런타임은 정렬의 자연스런 경쟁을 적절히 처리합니다. Block 호출 전에 오는 Unblock 호출은 Block 호출의 효과를 부정합니다.
이 메서드에서 throw할 수 있는 몇 가지 예외가 있습니다. 컨텍스트가 그 자체로 Unblock 메서드를 호출하려고 시도할 경우 context_self_unblock 예외가 throw됩니다. Block 및 Unblock에 대한 호출이 적절히 쌍을 이루지 않는 경우(예: Unblock에 대한 두 호출이 현재 실행 중인 컨텍스트에서 이루어짐), context_unblock_unbalanced 예외가 throw됩니다.
Unblock 메서드를 호출할 수 있는 다른 스레드의 컨텍스트를 게시하는 코드가 있는 지점과 Block에 대한 실제 메서드 호출이 이루어지는 지점 사이에 중요한 기간이 있음을 유의하십시오. 이 기간 동안 자체적인 이유(예: 잠금 가져오기)로 잠그고 잠금을 해제할 수 있는 메서드를 호출하지 않는 것이 필요합니다. Block 및 Unblock 메서드를 호출하면 차단 및 차단 해제 이유를 추적하지 않습니다. 하나의 개체만 Block 및 Unblock 쌍의 소유권을 가져야 합니다.
요구 사항
헤더: concrt.h
네임스페이스: 동시성