Thread.ThreadState Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość zawierającą stany bieżącego wątku.
public:
property System::Threading::ThreadState ThreadState { System::Threading::ThreadState get(); };
public System.Threading.ThreadState ThreadState { get; }
member this.ThreadState : System.Threading.ThreadState
Public ReadOnly Property ThreadState As ThreadState
Wartość właściwości
ThreadState Jedna z wartości wskazująca stan bieżącego wątku. Wartość początkowa to Unstarted.
Przykłady
Poniższy przykład kodu przedstawia dostęp do ThreadState
wątku.
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);
newThread->Start();
// Wait for newThread to start and go to sleep.
Thread::Sleep(300);
Console::WriteLine("ThreadState: {0}", newThread->ThreadState);
// Wait for newThread to restart.
Thread::Sleep(1000);
Console::WriteLine("ThreadState: {0}", newThread->ThreadState);
}
// The example displays the following output:
// ThreadState: Unstarted
// ThreadState: WaitSleepJoin
// ThreadState: Stopped
using System;
using System.Threading;
class Example
{
static void Main()
{
Thread newThread =
new Thread(new ThreadStart(ThreadMethod));
Console.WriteLine("ThreadState: {0}", newThread.ThreadState);
newThread.Start();
// Wait for newThread to start and go to sleep.
Thread.Sleep(300);
Console.WriteLine("ThreadState: {0}", newThread.ThreadState);
// Wait for newThread to restart.
Thread.Sleep(1000);
Console.WriteLine("ThreadState: {0}", newThread.ThreadState);
}
static void ThreadMethod()
{
Thread.Sleep(1000);
}
}
// The example displays the following output:
// ThreadState: Unstarted
// ThreadState: WaitSleepJoin
// ThreadState: Stopped
open System.Threading
let threadMethod () =
Thread.Sleep 1000
let newThread = Thread threadMethod
printfn $"ThreadState: {newThread.ThreadState}"
newThread.Start()
// Wait for newThread to start and go to sleep.
Thread.Sleep 300
printfn $"ThreadState: {newThread.ThreadState}"
// Wait for newThread to restart.
Thread.Sleep 1000
printfn $"ThreadState: {newThread.ThreadState}"
// The example displays the following output:
// ThreadState: Unstarted
// ThreadState: WaitSleepJoin
// ThreadState: Stopped
Imports System.Threading
Public Module Example
Public Sub Main()
Dim newThread As Thread = New Thread(AddressOf ThreadMethod)
Console.WriteLine("ThreadState: {0}", newThread.ThreadState)
newThread.Start()
' Wait for newThread to start and go to sleep.
Thread.Sleep(300)
Console.WriteLine("ThreadState: {0}", newThread.ThreadState)
' Wait for newThread to restart.
Thread.Sleep(1000)
Console.WriteLine("ThreadState: {0}", newThread.ThreadState)
End Sub
Sub ThreadMethod()
Thread.Sleep(1000)
End Sub
End Module
' The example displays the following output:
' ThreadState: Unstarted
' ThreadState: WaitSleepJoin
' ThreadState: Stopped
Uwagi
Właściwość ThreadState zawiera bardziej szczegółowe informacje niż IsAlive właściwość .
Ważne
Stan wątku jest interesujący tylko w scenariuszach debugowania. Kod nigdy nie powinien używać stanu wątku do synchronizowania działań wątków.