다음을 통해 공유


ICLRTask2 인터페이스

ICLRTask 인터페이스의 모든 기능을 제공합니다. 또한 현재 스레드에서 스레드 중단을 지연할 수 있는 메서드를 제공합니다.

메서드

메서드 Description
BeginPreventAsyncAbort 메서드 현재 스레드에서 새 스레드 중단 요청을 지연합니다.
EndPreventAsyncAbort 메서드 새 스레드 또는 보류 중인 스레드 중단 요청이 현재 스레드에서 스레드 중단을 발생하도록 허용합니다.

설명

ICLRTask2 인터페이스는 ICLRTask 인터페이스를 상속하고 호스트가 스레드 중단을 지연할 수 있도록 하는 메서드를 추가하여 실패하지 않아야 하는 코드 영역을 보호합니다. BeginPreventAsyncAbort를 호출하면 현재 스레드에 대한 지연 스레드 중단 카운터가 증가하며 EndPreventAsyncAbort를 호출하면 이 카운터가 감소합니다. BeginPreventAsyncAbortEndPreventAsyncAbort 호출을 중첩할 수 있습니다. 카운터가 0보다 크면 현재 스레드에 대한 스레드 중단이 지연됩니다.

BeginPreventAsyncAbortEndPreventAsyncAbort 호출이 쌍을 이루지 않으면 스레드 중단을 현재 스레드로 전달할 수 없는 상태에 도달할 수 있습니다.

자체를 중단하는 스레드에 대해서는 지연이 적용되지 않습니다.

이 기능에 의해 노출되는 기능은 VM(가상 머신)에서 내부적으로 사용됩니다. 이러한 메서드를 오용하면 VM에서 지정되지 않은 동작이 발생할 수 있습니다. 예를 들어, 먼저 BeginPreventAsyncAbort를 호출하지 않고 EndPreventAsyncAbort를 호출하면 VM이 이전에 카운터를 증가시켰을 때 카운터를 0으로 설정할 수 있습니다. 유사하게 내부 카운터는 오버플로에 대해 검사되지 않습니다. 호스트와 VM 모두에 의해 증가되기 때문에 정수 제한을 초과하는 경우 결과 동작은 지정되지 않습니다.

ICLRTask에서 상속된 멤버 및 이 인터페이스의 다른 용도에 대한 자세한 내용은 ICLRTask 인터페이스를 참조하세요.

요구 사항

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

헤더: MSCorEE.h

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

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

참고 항목