Поделиться через


Интерфейс IHostTaskManager

Обновлен: Ноябрь 2007

Предоставляет методы, позволяющие среде CLR работать с задачами посредством основного приложения, не используя стандартные функции потоков или нитей операционной системы.

interface IHostTaskManager : IUnknown
{
    HRESULT GetCurrentTask (
                [out] IHostTask **pTask
        );

    HRESULT CreateTask (
                [in] DWORD dwStackSize,
        [in] LPTHREAD_START_ROUTINE pStartAddress,
        [in] PVOID pParameter,
        [out] IHostTask **ppTask
        );

    HRESULT Sleep (
                [in] DWORD dwMilliseconds,
        [in] DWORD option
        );

    HRESULT SwitchToTask (
                [in] DWORD option
        );

    HRESULT SetUILocale (
                [in] LCID lcid
        );

    HRESULT SetLocale (
                [in] LCID lcid
        );

    HRESULT CallNeedsHostHook (
                [in] SIZE_T target,
        [out] BOOL *pbCallNeedsHostHook
        );

    HRESULT LeaveRuntime (
                [in] SIZE_T target
        );

    HRESULT EnterRuntime ();

    HRESULT ReverseLeaveRuntime ();

    HRESULT ReverseEnterRuntime ();

    HRESULT BeginDelayAbort ();

    HRESULT EndDelayAbort ();

    HRESULT BeginThreadAffinity ();

    HRESULT EndThreadAffinity ();

    HRESULT SetStackGuarantee (
                [in] ULONG guarantee
        );

    HRESULT GetStackGuarantee (
                [out] ULONG *pGuarantee
        );

    HRESULT SetCLRTaskManager (
        [in] ICLRTaskManager *ppManager
        );

}

Методы

Метод

Описание

Метод IHostTaskManager::BeginDelayAbort

Уведомляет основное приложение о переходе управляемого кода к периоду, в котором прерывание текущей задачи недопустимо.

Метод IHostTaskManager::BeginThreadAffinity

Уведомляет основное приложение о переходе управляемого кода к периоду, в котором перемещение текущей задачи в другой поток операционной системы недопустимо.

Метод IHostTaskManager::CallNeedsHostHook

Позволяет основному приложению указать, сможет ли среда CLR вводить заданный вызов в неуправляемую функцию.

Метод IHostTaskManager::CreateTask

Запрашивает создание новой задачи основным приложением.

Метод IHostTaskManager::EndDelayAbort

Уведомляет основное приложение о завершении в управляемом коде периода, во время которого прерывание текущей задачи недопустимо, после любого вызова метода BeginDelayAbort.

Метод IHostTaskManager::EndThreadAffinity

Уведомляет основное приложение о завершении в управляемом коде периода, во время которого перемещение текущей задачи в другой поток операционной системы недопустимо, после любого вызова метода BeginThreadAffinity.

Метод IHostTaskManager::EnterRuntime

Уведомляет основное приложение о том, что в результате вызова неуправляемого кода, например метода вызова неуправляемого кода, управление выполнением возвращено среде CLR.

Метод IHostTaskManager::GetCurrentTask

Получает указатель интерфейса на задачу, выполняемую в настоящий момент для потока операционной системы, из которого был осуществлен этот вызов.

Метод IHostTaskManager::GetStackGuarantee

Получает количество места в стеке, которое гарантированно будет доступно после завершения операций в стеке до закрытия процесса.

Метод IHostTaskManager::LeaveRuntime

Уведомляет основное приложение о том, что управляемый код намерен вызвать неуправляемую функцию.

Метод IHostTaskManager::ReverseEnterRuntime

Уведомляет основное приложение о выполнении вызова среды CLR из неуправляемого кода.

Метод IHostTaskManager::ReverseLeaveRuntime

Уведомляет основное приложение о передаче управления средой CLR неуправляемой функции, которая, в свою очередь, была вызвана из управляемого кода.

Метод IHostTaskManager::SetCLRTaskManager

Предоставляет основному приложению указатель интерфейса на экземпляр ICLRTaskManager, реализованный средой CLR.

Метод IHostTaskManager::SetLocale

Уведомляет основное приложение о том, что среда CLR изменила языковой стандарт для текущей задачи.

Метод IHostTaskManager::SetStackGuarantee

Зарезервирован только для внутреннего использования.

Метод IHostTaskManager::SetUILocale

Уведомляет основное приложение об изменении языкового стандарта пользовательского интерфейса для текущей задачи.

Метод IHostTaskManager::Sleep

Уведомляет основное приложение о том, что текущая задача собирается выполнить переход в спящий режим.

Метод IHostTaskManager::SwitchToTask

Уведомляет основное приложение о необходимости отключения текущей задачи.

Заметки

Интерфейс IHostTaskManager позволяет среде CLR создавать задачи и управлять их выполнением с целью предоставления обработчиков, которые будут выполнять определенные действия при взаимной передаче управления между управляемым и неуправляемым кодом, а также назначения определенных действий, которые основное приложение может и не может выполнять во время выполнения кода.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: MSCorEE.idl

Библиотека: включена как ресурс в MSCorEE.dll

Версии платформы .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

См. также

Ссылки

Интерфейс ICLRTask

Интерфейс ICLRTaskManager

Интерфейс IHostTask

Другие ресурсы

Интерфейсы размещения