Name
ThreadState
Synopsis
This enumeration encapsulates
the various states a thread may
be in. A thread starts in the Unstarted
state.
Once the Thread.Start( )
method is called, a
thread enters the Running
state. If another thread
calls Thread.Abort( )
at any time, the thread
shifts into the AbortRequested
state, and then
into Aborted
once the thread reaches a safe point
for garbage collection.
If the running thread calls either the static method
Thread.Sleep( )
, any of the Wait( )
methods on a WaitHandle
, or
Thread.Join( )
on another thread, the executing
thread enters the WaitSleepJoin
state.
If another thread calls Thread.Interrupt( )
on a
thread in the WaitSleepJoin
state, the thread
again enters the Running
state. When another
thread calls Thread.Suspend( )
on a thread, it
enters the SuspendRequested
state. Once a thread
in the SuspendRequested
state reaches a safe point
for garbage collection, it enters the Suspended
state. A thread then leaves the Suspended
state
and enters the running state when another thread calls
Thread.Resume( )
on it. When a thread has finished
running, it enters the Stopped
state.
Once a thread has started, it cannot return to the
Unstarted
state. Similarly, once a thread has
aborted or stopped, it cannot return to the
Running
state. This enumeration is marked with a
[Flags( )]
attribute, which allows a thread to be
in more than one state at a time. For example, if a thread is in the
WaitSleepJoin
and another thread calls
Thread.Abort( )
on it, it will ...
Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.