IHostTask::SetPriority 方法

请求主机调整当前 IHostTask 实例表示的任务的线程优先级。

语法

HRESULT SetPriority (  
    [in] int newPriority  
);  

参数

newPriority
[in] 整数,表示请求的当前 IHostTask 实例所表示的任务的线程优先级值。

返回值

HRESULT 说明
S_OK 已成功返回 SetPriority
HOST_E_CLRNOTAVAILABLE 公共语言运行时 (CLR) 未加载到进程中,或 CLR 处于无法运行托管代码或无法成功处理调用的状态。
HOST_E_TIMEOUT 调用超时。
HOST_E_NOT_OWNER 调用方未持有锁。
HOST_E_ABANDONED 阻塞的线程或纤程正在等待某一事件,而该事件已被取消。
E_FAIL 发生未知的灾难性故障。 当方法返回 E_FAIL 时,进程中无法再使用 CLR。 后续调用承载方法会返回 HOST_E_CLRNOTAVAILABLE。

备注

使用部分基于线程优先级的循环系统授予线程处理时间。 SetPriority 允许 CLR 为当前任务设置该线程优先级。 支持以下 newPriority 值。

  • THREAD_PRIORITY_ABOVE_NORMAL

  • THREAD_PRIORITY_BELOW_NORMAL

  • THREAD_PRIORITY_HIGHEST

  • THREAD_PRIORITY_IDLE

  • THREAD_PRIORITY_LOWEST

  • THREAD_PRIORITY_NORMAL

  • THREAD_PRIORITY_TIME_CRITICAL

用户代码修改 Thread.Priority 的值时,CLR 调用 SetPriority。 主机可以为线程优先级分配定义自己的算法,并且可以随意忽略此请求。

备注

SetPriority 不报告线程优先级是否已更改。 调用 IHostTask::GetPriority 以确定任务线程优先级的值。

线程优先级值由 Win32 SetThreadPriority 函数定义。 有关线程优先级的详细信息,请参阅 Windows 平台文档。

要求

平台:请参阅系统要求

标头:MSCorEE.h

库:作为资源包含在 MSCorEE.dll 中

.NET Framework 版本:自 2.0 起可用

另请参阅