Context 클래스

실행 컨텍스트에 대한 추상화를 나타냅니다.

class Context;

멤버

Public 메서드

Name

설명

Context::Block 메서드

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

Context::CurrentContext 메서드

현재 컨텍스트에 대한 포인터를 반환합니다.

Context::GetId 메서드

컨텍스트가 속해 있는 스케줄러 내에서 고유한 컨텍스트의 식별자를 반환합니다.

Context::GetScheduleGroupId 메서드

컨텍스트가 현재 작동 중인 일정 그룹에 대한 식별자를 반환합니다.

Context::GetVirtualProcessorId 메서드

컨텍스트가 현재 실행 중인 가상 프로세서에 대한 식별자를 반환합니다.

Context::Id 메서드

현재 컨텍스트가 속해 있는 스케줄러 내에서 고유한 현재 컨텍스트의 식별자를 반환합니다.

Context::IsCurrentTaskCollectionCanceling 메서드

현재 컨텍스트에서 인라인 실행 중인 작업 컬렉션이 현재 취소 중인지(또는 곧 취소) 여부를 반환합니다.

Context::IsSynchronouslyBlocked 메서드

컨텍스트가 동기적으로 차단되는지 여부를 결정합니다. 컨텍스트는 차단을 일으키는 작업을 명시적으로 수행한 경우 동기적으로 차단된 것으로 간주됩니다.

Context::Oversubscribe 메서드

추가 가상 프로세서가 해당 스케줄러에서 가상 프로세서 중 하나에서 실행되는 컨텍스트에서 실행될 때 코드 블록의 기간 동안 스케줄러에 삽입합니다.

Context::ScheduleGroupId 메서드

현재 컨텍스트가 작동 중인 일정 그룹에 대한 식별자를 반환합니다.

Context::Unblock 메서드

컨텍스트를 차단 해제하고 실행할 수 없게 만듭니다.

Context::VirtualProcessorId 메서드

현재 컨텍스트가 실행 중인 가상 프로세서에 대한 식별자를 반환합니다.

Context::Yield 메서드

다른 컨텍스트가 실행할 수 있도록 실행을 양보합니다. 양도할 수 있는 다른 컨텍스트가 없는 경우 스케줄러는 다른 운영 체제 스레드를 양도할 수 있습니다.

Protected 연산자

Name

설명

Context::operator delete 연산자

Context 개체는 런타임에 내부적으로 소멸됩니다. 명시적으로 삭제되지 않을 수 있습니다.

설명

동시성 런타임 스케줄러(스케줄러 참조)는 실행 컨텍스트를 사용하여 응용 프로그램이 큐에 추가한 작업을 실행합니다. Win32 스레드 및 UMS(User Mode Schedulable) 스레드는 Windows 운영 체제에서 실행 컨텍스트의 예입니다. UMS 스레드는 Windows 7 이상의 64비트 운영 체제에서만 지원됩니다.

언제든지 스케줄러의 동시성 수준은 리소스 관리자가 자신에게 부여한 가상 프로세서 수와 같습니다. 가상 프로세서는 리소스 처리를 위한 추상화이며 내부 시스템에서 하드웨어 스레드에 매핑됩니다. 단일 스케줄러 컨텍스트만 주어진 시간에 가상 프로세서에서 실행할 수 있습니다.

스케줄러는 본질적으로 공동 작업이며 실행 컨텍스트는 대기 상태에 들어가기를 원할 경우 언제든지 가상 프로세서를 다른 컨텍스트에 양도할 수 있습니다. 대기가 충족될 때 스케줄러에서 사용 가능한 가상 프로세서가 실행을 시작할 때까지 다시 시작할 수 없습니다.

상속 계층 구조

컨텍스트

요구 사항

헤더: concrt.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

Scheduler 클래스

개념

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