|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| Yes
| Win32s
| No
| Import Library
| kernel32.lib
| Header File
| winbase.h
| Unicode
| No
| Platform Notes
| None
|
|
|
SetThreadPriority
The
SetThreadPriority function sets the priority value for the specified thread. This value,
together with the priority class of the thread's process, determines the thread's
base priority level.
BOOL SetThreadPriority(
HANDLE hThread,
| // handle to the thread
|
int nPriority
| // thread priority level
|
);
|
|
Parameters
hThread
Identifies the thread whose priority value is to be set.
Windows NT: The handle must have the THREAD_SET_INFORMATION access right associated with
it. For more information, see
Thread Objects.
nPriority
Specifies the priority value for the thread. This parameter can be one of the
following values:
Priority
| Meaning
|
THREAD_PRIORITY_ABOVE_NORMAL
| Indicates 1 point above normal priority for the priority class.
|
THREAD_PRIORITY_BELOW_NORMAL
| Indicates 1 point below normal priority for the priority class.
|
THREAD_PRIORITY_HIGHEST
| Indicates 2 points above normal priority for the priority class.
|
THREAD_PRIORITY_IDLE
| Indicates a base priority level of 1 for IDLE_PRIORITY_CLASS,
NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority level of 16 for
REALTIME_PRIORITY_CLASS processes.
|
THREAD_PRIORITY_LOWEST
| Indicates 2 points below normal priority for the priority class.
|
THREAD_PRIORITY_NORMAL
| Indicates normal priority for the priority class.
|
THREAD_PRIORITY_TIME_CRITICAL
| Indicates a base priority level of 15 for IDLE_PRIORITY_CLASS,
NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority level of 31 for
REALTIME_PRIORITY_CLASS processes.
|
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error
information, call
GetLastError.
Remarks
Every thread has a base priority level determined by the thread's priority
value and the priority class of its process. The system uses the base priority
level of all executable threads to determine which thread gets the next slice of
CPU time. Threads are scheduled in a round-robin fashion at each priority level,
and only when there are no executable threads at a higher level does
scheduling of threads at a lower level take place.
The
SetThreadPriority function enables setting the base priority level of a thread relative to the
priority class of its process. For example, specifying THREAD_PRIORITY_HIGHEST
in a call to
SetThreadPriority for a thread of an IDLE_PRIORITY_CLASS process sets the thread's base
priority level to 6. For a table that shows the base priority levels for each
combination of priority class and thread priority value, see the
SetPriorityClass function.
For IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, and HIGH_PRIORITY_CLASS
processes, the system dynamically boosts a thread's base priority level when events
occur that are important to the thread. REALTIME_PRIORITY_CLASS processes do not
receive dynamic boosts.
All threads initially start at THREAD_PRIORITY_NORMAL. Use the
GetPriorityClass and
SetPriorityClass functions to get and set the priority class of a process. Use the
GetThreadPriority function to get the priority value of a thread.
Use the priority class of a process to differentiate between applications that
are time critical and those that have normal or below normal scheduling
requirements. Use thread priority values to differentiate the relative priorities of
the tasks of a process. For example, a thread that handles input for a window
could have a higher priority level than a thread that performs intensive
calculations for the CPU.
When manipulating priorities, be very careful to ensure that a high-priority
thread does not consume all of the available CPU time. A thread with a base
priority level above 11 interferes with the normal operation of the operating
system. Using REALTIME_PRIORITY_CLASS may cause disk caches to not flush, hang the
mouse, and so on.
See Also
GetPriorityClass,
GetThreadPriority,
SetPriorityClass
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database