IHostTask::SetPriority Method

Requests that the host adjust the thread priority level for the task represented by the current IHostTask instance.

HRESULT SetPriority (
    [in] int newPriority
);

Parameters

  • newPriority
    [in] An integer that represents the requested thread priority value for the task represented by the current IHostTask instance.

Return Value

HRESULT

Description

S_OK

SetPriority returned successfully.

HOST_E_CLRNOTAVAILABLE

The common language runtime (CLR) has not been loaded into a process, or the CLR is in a state in which it cannot run managed code or process the call successfully.

HOST_E_TIMEOUT

The call timed out.

HOST_E_NOT_OWNER

The caller does not own the lock.

HOST_E_ABANDONED

An event was canceled while a blocked thread or fiber was waiting on it.

E_FAIL

An unknown catastrophic failure occurred. When a method returns E_FAIL, the CLR is no longer usable within the process. Subsequent calls to hosting methods return HOST_E_CLRNOTAVAILABLE.

Remarks

Threads are granted processing time using a round-robin system that is partly based on a thread's priority level. SetPriority allows the CLR to set that thread priority level for the current task. The following newPriority values are supported.

  • THREAD_PRIORITY_ABOVE_NORMAL

  • THREAD_PRIORITY_BELOW_NORMAL

  • THREAD_PRIORITY_HIGHEST

  • THREAD_PRIORITY_IDLE

  • THREAD_PRIORITY_LOWEST

  • THREAD_PRIORITY_NORMAL

  • THREAD_PRIORITY_TIME_CRITICAL

The CLR calls SetPriority when the value of the Thread.Priority is modified by user code. A host can define its own algorithms for thread priority assignment, and is free to ignore this request.

Note

SetPriority does not report whether the thread priority level was changed. Call IHostTask::GetPriority to determine the value of the task's thread priority level.

Thread priority level values are defined by the Win32 SetThreadPriority function. For more information about thread priority, see the Windows Platform documentation.

Requirements

Platforms: See .NET Framework System Requirements.

Header: MSCorEE.h

Library: Included as a resource in MSCorEE.dll

.NET Framework Versions: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

See Also

Reference

ICLRTask Interface

ICLRTaskManager Interface

IHostTask Interface

IHostTask::GetPriority Method

IHostTaskManager Interface

Thread