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::BeginThreadAffinity 및 IHostTaskManager::EndThreadAffinity 메서드 호출에 지정된 대로 런타임에 스레드 선호도가 필요한 경우를 제외하고 모든 운영 체제 스레드에서 작업을 예약할 수 있습니다. 잠시 후 운영 체제는 스레드에서 작업을 제거하고 실행 중이 아닌 상태로 전환하도록 결정할 수 있습니다. 예를 들어 이것은 작업이 동기화 기본 형식을 차단하거나 I/O 작업이 완료될 때까지 대기할 때마다 발생할 수 있습니다. 호스트는 SwitchOut을 호출하여 현재 ICLRTask
인스턴스가 나타내는 작업이 더 이상 작동 가능한 상태가 아님을 CLR에 알립니다.
작업은 일반적으로 코드 실행이 끝날 때 종료됩니다. 이때 호스트는 ICLRTask::ExitTask
를 호출하여 연결된 ICLRTask
를 삭제합니다. 그러나 ICLRTask::Reset
호출을 사용하여 작업을 재활용할 수도 있습니다. 그러면 ICLRTask
인스턴스를 다시 사용할 수 있습니다. 이 접근 방식은 인스턴스를 반복적으로 만들고 삭제하는 오버헤드를 방지합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: MSCorEE.h
라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.
.NET Framework 버전: 2.0부터 사용 가능
참고 항목
.NET