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

Get VB.NET Core Classes in a Nutshell 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.