IHostTaskManager

更新:2007 年 11 月

提供一些方法,使公共语言运行库 (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 方法

允许主机指定公共语言运行库是否可以内联对非托管函数的指定调用。

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 方法

为宿主提供一个接口指针,指向由 CLR 实现的 ICLRTaskManager 实例。

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

其他资源

宿主接口