다음을 통해 공유


Context::Block 메서드

현재 컨텍스트를 차단합니다.

static void __cdecl Block();

설명

이 메서드는 현재 호출 컨텍스트에 연결된 스케줄러가 없는 경우 호출 컨텍스트에 만들고 있거나 연결하고 있는 프로세스의 기본 스케줄러에서 발생합니다.

호출 컨텍스트가 가상 프로세서에서 실행 중인 경우 가상 프로세서는 다른 실행 가능한 컨텍스트를 찾아 실행하거나 새로운 컨텍스트를 만들 수 있습니다.

Block 메서드가 호출되거나 호출될 예정이면 다시 실행하려면 다른 실행 컨텍스트에서 Unblock 메서드에 대한 호출과 쌍을 이루어야 합니다. Unblock 메서드를 호출할 수 있는 다른 스레드의 컨텍스트를 게시하는 코드가 있는 지점과 Block에 대한 실제 메서드 호출이 이루어지는 지점 사이에 중요한 기간이 있음을 유의하십시오. 이 기간 동안, 당신은 (예를 들어, 잠금을 획득) 회전 블록 자체 이유로 차단을 해제 할 수있는 모든 메서드를 호출하지 않아야합니다. BlockUnblock 메서드를 호출하면 차단 및 차단 해제 이유를 추적하지 않습니다. 하나의 개체만 Block-Unblock 쌍의 소유권을 가져야 합니다.

이 메서드는 scheduler_resource_allocation_error를 포함하여 다양한 예외를 throw할 수 있습니다.

요구 사항

헤더: concrt.h

네임스페이스: 동시성

참고 항목

참조

Context 클래스

Context::Unblock 메서드

개념

작업 스케줄러(동시성 런타임)