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 be ...