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