Thread State

The .NET Framework thread model is designed to model an execution thread. Many of the Threading namespace classes and members map directly to an execution state of a thread. Personally, I found knowing the execution states of a thread ultimately made it easier for me to understand threading, so using Figure 16-1 and Table 16-1, I'll walk you through the state and the action required to change states within the .NET Framework thread model.

Table 16-1: The Execution States of a Thread



The thread is created with the CLR and has not been invoked.


The thread executes its start process.


The thread continues to run until another action occurs.


The running thread calls sleep for a specified length of time.


The running thread calls wait on a locked resource.


The running thread calls join on another thread.


Another thread calls interrupt on the WaitSleepJoin thread.


Another thread calls suspend on the thread.


The SuspendRequested thread processes the suspend call.


Another thread calls resume on a Suspended thread.


Another thread calls abort on the thread.


The AbortRequested thread processes the abort call.


click to expand
Figure 16-1: The execution states of a thread

You might want to note that the states in Table 16-1 map directly to the System::Threading::ThreadState enumeration. And, if you need to determine the current state, you would look in the ThreadState property in the Thread class.

In addition to these states is a Background state, which means the thread is executing in the background (as opposed to in the foreground). The biggest difference between a background thread and a foreground thread is that a background thread ends when the main application thread ends. A foreground thread continues executing until it is aborted or finishes executing. You set a thread to be in the background by setting the IsBackground property of the Thread class.

Managed C++ and. NET Development
Managed C++ and .NET Development: Visual Studio .NET 2003 Edition
ISBN: 1590590333
EAN: 2147483647
Year: 2005
Pages: 169 © 2008-2017.
If you may any questions please contact us: