ICLRTask2 인터페이스
ICLRTask 인터페이스의 모든 기능을 제공하며 현재 스레드에서 스레드 중단을 지연시킬 수 있는 메서드도 제공합니다.
메서드
메서드 |
설명 |
---|---|
현재 스레드에서 새 스레드 중단 요청을 지연시킵니다. |
|
새 또는 보류 중인 스레드 중단 요청을 현재 스레드에 적용합니다. |
설명
ICLRTask2 인터페이스는 ICLRTask 인터페이스를 상속하고 호스트에서 스레드 중단을 지연시킬 수 있도록 하는 메서드를 추가하여 실패하면 안 되는 코드 영역을 보호합니다. BeginPreventAsyncAbort를 호출하면 현재 스레드에 대한 스레드 중단 지연 카운터가 증가하고 EndPreventAsyncAbort를 호출하면 이 카운터가 감소합니다. BeginPreventAsyncAbort 및 EndPreventAsyncAbort에 대한 호출은 중첩될 수 있습니다. 카운터가 0보다 크면 현재 스레드에 대한 스레드 중단이 지연됩니다.
BeginPreventAsyncAbort 메서드와 EndPreventAsyncAbort 메서드를 함께 호출하지 않을 경우 현재 스레드에 스레드 중단을 전달할 수 없는 상태가 될 수 있습니다.
자체적으로 중단하는 스레드에는 지연이 적용되지 않습니다.
이 기능이 노출하는 기능은 VM(가상 컴퓨터)에서 내부적으로 사용됩니다. 이러한 메서드를 잘못 사용하면 VM에서 지정되지 않은 동작이 발생할 수 있습니다. 예를 들어, BeginPreventAsyncAbort를 먼저 호출하지 않고 EndPreventAsyncAbort를 호출하면 VM에서 이전에 카운터를 증가시킨 경우 카운터가 0으로 설정될 수 있습니다. 이와 마찬가지로 내부 카운터는 오버플로가 검사되지 않습니다. 호스트와 VM에 의해 증가되었기 때문에 필수 한도를 초과하는 경우 결과 동작이 지정되지 않습니다.
ICLRTask에서 상속되는 멤버와 이 인터페이스의 다른 용도에 대한 자세한 내용은 ICLRTask 인터페이스를 참조하십시오.
요구 사항
플랫폼: .NET Framework 시스템 요구 사항 참조
헤더: MSCorEE.h
라이브러리: MSCorEE.dll에 리소스로 포함됨
.NET Framework 버전: 4