CHAPTER 19 MULTITHREADED, PARALLEL, AND ASYNC PROGRAMMING
}
BelowNormal,
Normal, // Default value.
AboveNormal,
Highest
If you were to assign a thread’s priority level to a value other than the default
(ThreadPriority.Normal), understand that you would have no direct control over when the thread
scheduler switches between threads. In reality, a thread’s priority level offers a hint to the CLR regarding
the importance of the thread’s activity. Thus, a thread with the value ThreadPriority.Highest is not
necessarily guaranteed to be given the highest precedence.
Again, if the thread scheduler is preoccupied with a given task (e.g., synchronizing an object,
switching threads, or moving threads), the priority level will most likely be altered accordingly. However,
all things being equal, the CLR will read these values a