Метод ICLRTask2::BeginPreventAsyncAbort
Задерживает запросы на прерывание нового потока, что приводит к прерыванию потока в текущем потоке.
Синтаксис
HRESULT BeginPreventAsyncAbort();
Возвращаемое значение
Этот метод возвращает следующие конкретные результаты HRESULT, а также ошибки HRESULT, которые указывают на сбой метода.
HRESULT | Описание: |
---|---|
S_OK | Метод завершился успешно. |
HOST_E_INVALIDOPERATION | Метод был вызван для потока, который не является текущим потоком. |
Комментарии
Вызов этого метода увеличивает значение счетчика delay-thread-abort для текущего потока на единицу.
BeginPreventAsyncAbort
Вызовы и ICLRTask2::EndPreventAsyncAbort могут быть вложенными. Пока значение счетчика больше нуля, прерывания потока для текущего потока задерживаются. Если этот вызов не связан с вызовом EndPreventAsyncAbort
метода , можно достичь состояния, в котором прерывания потока не могут быть доставлены в текущий поток.
Задержка не учитывается для потока, который прерывает себя.
Функциональные возможности, предоставляемые этой функцией, используются внутри виртуальной машины. Неправильное использование этих методов может привести к неопределенному поведению на виртуальной машине. Например, при вызове EndPreventAsyncAbort
без первого вызова BeginPreventAsyncAbort
счетчик может быть равен нулю, если виртуальная машина ранее увеличила его. Аналогичным образом внутренний счетчик не проверяется на переполнение. Если он превышает целочисленное ограничение, так как увеличивается как узлом, так и виртуальной машиной, результирующее поведение не указано.
Требования
Платформы: см. раздел Требования к системе.
Заголовка: MSCorEE.h
Библиотека: Включено в качестве ресурса в MSCorEE.dll
версии платформа .NET Framework: доступно с 4