Thread::ThreadState Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets a value containing the states of the current thread.

Namespace:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

property ThreadState ThreadState {
	ThreadState get();

Property Value

Type: System.Threading::ThreadState

One of the ThreadState values indicating the state of the current thread. The initial value is Unstarted.

The ThreadState property provides more specific information than the IsAlive property.


Thread state is only of interest in debugging scenarios. Your code should never use thread state to synchronize the activities of threads.

The following code example demonstrates accessing the ThreadState of a thread.

using namespace System;
using namespace System::Threading;

// ref class ApartmentTest
// {
// public:
   static void ThreadMethod()
      Thread::Sleep( 1000 );
//    }


int main()
//    Thread^ newThread = gcnew Thread( gcnew ThreadStart( &ApartmentTest::ThreadMethod ) );
   Thread^ newThread = gcnew Thread( gcnew ThreadStart( &ThreadMethod ) );

   Console::WriteLine("ThreadState: {0}", newThread->ThreadState);

   // Wait for newThread to start and go to sleep.
   Console::WriteLine("ThreadState: {0}", newThread->ThreadState);

   // Wait for newThread to restart.
   Console::WriteLine("ThreadState: {0}", newThread->ThreadState);
// The example displays the following output:
//       ThreadState: Unstarted
//       ThreadState: WaitSleepJoin
//       ThreadState: Stopped

.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top