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