ICLRTask 인터페이스
호스트에서 연결된 작업에 대해 CLR에 요청하거나 CLR에 알림을 제공하는 데 사용할 수 있는 메서드를 제공합니다.
메서드
메서드 |
설명 |
---|---|
현재 ICLRTask 인스턴스가 나타내는 작업을 중지하도록 CLR에 요청합니다. |
|
현재 ICLRTask 인스턴스와 연결된 작업이 종료됨을 CLR에 런타임에 알리고 정상적인 작업 종료를 시도합니다. |
|
현재 ICLRTask 인스턴스가 나타내는 작업에 사용되는 메모리 리소스에 대한 통계 정보를 가져옵니다. |
|
작업에 현재 설정되어 있는 잠금 수를 가져옵니다. |
|
현재 ICLRTask 인스턴스가 나타내는 작업의 일정을 재조정하기 위해 호스트에서 높은 우선 순위를 할당하는지 여부를 나타내는 값을 가져옵니다. |
|
호스트에서 작업이 완료되었음을 CLR에 알리고 CLR에서 현재 ICLRTask 인스턴스를 다시 사용하여 다른 작업을 나타낼 수 있도록 합니다. |
|
CLR에서 현재 ICLRTask 인스턴스가 나타내는 작업을 즉시 중단하도록 합니다. 이때 종료자는 실행되지 않을 수도 있습니다. |
|
디버깅에 사용하기 위해 현재 ICLRTask 인스턴스가 나타내는 작업에 대해 고유 식별자를 설정합니다. |
|
현재 ICLRTask 인스턴스가 나타내는 작업이 작동 가능한 상태임을 CLR에 알립니다. |
|
현재 ICLRTask 인스턴스가 나타내는 작업이 더 이상 작동 가능한 상태가 아님을 CLR에 알립니다. |
|
프로세서 시간을 다른 작업에 사용할 수 있게 만들도록 CLR에 요청합니다. 그러나 CLR에서는 작업이 프로세서 시간을 양보할 수 있는 상태가 되지 않을 수도 있습니다. |
설명
ICLRTask는 CLR의 작업을 나타냅니다. 코드 실행 중의 임의의 시점에 작업은 실행되고 있거나 실행을 대기하고 있는 것으로 표시될 수 있습니다. 호스트에서는 ICLRTask::SwitchIn 메서드를 호출하여 현재 ICLRTask 인스턴스가 나타내는 작업이 작동 가능한 상태에 있음을 CLR에 알립니다. ICLRTask::SwitchIn을 호출한 후에는 IHostTaskManager::BeginThreadAffinity 및 IHostTaskManager::EndThreadAffinity 메서드 호출로 지정한 대로 런타임에 스레드 선호도가 필요한 경우를 제외하고 호스트에서 운영 체제 스레드의 작업을 예약할 수 있습니다. 얼마 후 운영 체제에서는 스레드에서 작업을 제거하고 작업을 실행되고 있지 않은 상태로 설정할 수 있습니다. 예를 들어 동기화 기본 형식에서 작업이 차단되거나 I/O 작업이 완료될 때까지 작업이 대기하고 있는 경우에는 항상 이렇게 될 수 있습니다. 호스트에서는 SwitchOut을 호출하여 현재 ICLRTask 인스턴스가 나타내는 작업이 더 이상 작동 가능한 상태가 아님을 CLR에 알립니다.
작업은 일반적으로 코드 실행이 끝날 때 종료됩니다. 이때 호스트에서는 ICLRTask::ExitTask를 호출하여 연결된 ICLRTask를 소멸시킵니다. 그러나 ICLRTask 인스턴스를 다시 사용할 수 있게 만드는 ICLRTask::Reset을 호출하여 작업을 재활용할 수도 있습니다. 이 방법을 사용하면 반복적으로 인스턴스를 만들고 소멸시키는 오버헤드를 피할 수 있습니다.
요구 사항
플랫폼: .NET Framework 시스템 요구 사항 참조
헤더: MSCorEE.h
라이브러리: MSCorEE.dll에 리소스로 포함됨
.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0