다음을 통해 공유


ICLRTask 인터페이스

호스트가 CLR(공용 언어 런타임)을 요청하거나 관련 작업에 대한 알림을 CLR에 제공할 수 있는 메서드를 제공합니다.

메서드

메서드 Description
Abort 메서드 CLR이 현재 ICLRTask 인스턴스가 나타내는 작업을 중단하도록 요청합니다.
ExitTask 메서드 현재 ICLRTask 인스턴스와 연결된 작업이 종료되고 있음을 CLR에 알리고 작업을 정상적으로 종료하려고 시도합니다.
GetMemStats 메서드 현재 ICLRTask 인스턴스가 나타내는 작업에서 메모리 리소스 사용에 대한 통계 정보를 가져옵니다.
LocksHeld 메서드 작업에 현재 보관된 잠금 수를 가져옵니다.
NeedsPriorityScheduling 메서드 호스트가 현재 ICLRTask 인스턴스가 나타내는 작업을 다시 예약하기 위해 높은 우선 순위를 할당해야 하는지 여부를 나타내는 값을 가져옵니다.
Reset 메서드 호스트가 작업을 완료했음을 CLR에 알리고 CLR이 현재 ICLRTask 인스턴스를 다시 사용하여 다른 작업을 나타낼 수 있도록 합니다.
RudeAbort 메서드 종료자가 실행될 것이라는 보장 없이 CLR이 현재 ICLRTask 인스턴스가 나타내는 작업을 즉시 중단하도록 합니다.
SetTaskIdentifier 메서드 디버깅에 사용하기 위해 현재 ICLRTask 인스턴스가 나타내는 작업의 고유 식별자를 설정합니다.
SwitchIn 메서드 현재 ICLRTask 인스턴스가 나타내는 작업이 작동 가능한 상태임을 CLR에 알립니다.
SwitchOut 메서드 현재 ICLRTask 인스턴스가 나타내는 작업이 더 이상 작동 가능한 상태가 아님을 CLR에 알립니다.
YieldTask 메서드 CLR이 프로세서 시간을 다른 작업에 사용 가능하게 설정하도록 요청합니다. CLR은 작업이 처리 시간을 생성할 수 있는 상태로 전환되도록 보장하지 않습니다.

설명

ICLRTask는 CLR에 대한 작업의 표현입니다. 코드 실행 중 언제든지 작업은 실행 중 또는 실행 대기 중으로 설명할 수 있습니다. 호스트는 ICLRTask::SwitchIn 메서드를 호출하여 현재 ICLRTask 인스턴스가 나타내는 작업이 이제 작동 가능한 상태임을 CLR에 알립니다. ICLRTask::SwitchIn 호출 후 호스트는 IHostTaskManager::BeginThreadAffinityIHostTaskManager::EndThreadAffinity 메서드 호출에 지정된 대로 런타임에 스레드 선호도가 필요한 경우를 제외하고 모든 운영 체제 스레드에서 작업을 예약할 수 있습니다. 잠시 후 운영 체제는 스레드에서 작업을 제거하고 실행 중이 아닌 상태로 전환하도록 결정할 수 있습니다. 예를 들어 이것은 작업이 동기화 기본 형식을 차단하거나 I/O 작업이 완료될 때까지 대기할 때마다 발생할 수 있습니다. 호스트는 SwitchOut을 호출하여 현재 ICLRTask 인스턴스가 나타내는 작업이 더 이상 작동 가능한 상태가 아님을 CLR에 알립니다.

작업은 일반적으로 코드 실행이 끝날 때 종료됩니다. 이때 호스트는 ICLRTask::ExitTask를 호출하여 연결된 ICLRTask를 삭제합니다. 그러나 ICLRTask::Reset 호출을 사용하여 작업을 재활용할 수도 있습니다. 그러면 ICLRTask 인스턴스를 다시 사용할 수 있습니다. 이 접근 방식은 인스턴스를 반복적으로 만들고 삭제하는 오버헤드를 방지합니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: MSCorEE.h

라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.

.NET Framework 버전: 2.0부터 사용 가능

참고 항목