Thread Klasa

Definicja

Tworzy i kontroluje wątek, ustawia jego priorytet i pobiera jego stan.

public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
public ref class Thread sealed
public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
type Thread = class
    inherit CriticalFinalizerObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    interface _Thread
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    inherit CriticalFinalizerObject
    interface _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Public NotInheritable Class Thread
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
Dziedziczenie
Dziedziczenie
Thread
Atrybuty
Implementuje

Uwagi

Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz Uwagi dotyczące dodatkowego interfejsu API dla wątku.

Konstruktory

Thread(ParameterizedThreadStart)

Inicjuje nowe wystąpienie Thread klasy, określając delegata, który umożliwia przekazanie obiektu do wątku po uruchomieniu wątku.

Thread(ParameterizedThreadStart, Int32)

Inicjuje nowe wystąpienie Thread klasy, określając delegata, który umożliwia przekazanie obiektu do wątku po uruchomieniu wątku i określeniu maksymalnego rozmiaru stosu dla wątku.

Thread(ThreadStart)

Inicjuje nowe wystąpienie klasy Thread.

Thread(ThreadStart, Int32)

Inicjuje Thread nowe wystąpienie klasy, określając maksymalny rozmiar stosu dla wątku.

Właściwości

ApartmentState
Przestarzałe.
Przestarzałe.

Pobiera lub ustawia stan mieszkania tego wątku.

CurrentContext

Pobiera bieżący kontekst, w którym jest wykonywany wątek.

CurrentCulture

Pobiera lub ustawia kulturę bieżącego wątku.

CurrentPrincipal

Pobiera lub ustawia bieżącą jednostkę wątku (dla zabezpieczeń opartych na rolach).

CurrentThread

Pobiera aktualnie uruchomiony wątek.

CurrentUICulture

Pobiera lub ustawia bieżącą kulturę używaną przez Resource Manager do wyszukiwania zasobów specyficznych dla kultury w czasie wykonywania.

ExecutionContext

ExecutionContext Pobiera obiekt zawierający informacje o różnych kontekstach bieżącego wątku.

IsAlive

Pobiera wartość wskazującą stan wykonywania bieżącego wątku.

IsBackground

Pobiera lub ustawia wartość wskazującą, czy wątek jest wątkiem w tle.

IsThreadPoolThread

Pobiera wartość wskazującą, czy wątek należy do zarządzanej puli wątków.

ManagedThreadId

Pobiera unikatowy identyfikator bieżącego zarządzanego wątku.

Name

Pobiera lub ustawia nazwę wątku.

Priority

Pobiera lub ustawia wartość wskazującą priorytet planowania wątku.

ThreadState

Pobiera wartość zawierającą stany bieżącego wątku.

Metody

Abort()
Przestarzałe.

Wywołuje element ThreadAbortException w wątku, na którym jest wywoływany, aby rozpocząć proces kończenie wątku. Wywoływanie tej metody zwykle kończy wątek.

Abort(Object)
Przestarzałe.

ThreadAbortException Wywołuje element w wątku, na którym jest wywoływany, aby rozpocząć proces kończenia wątku, a także dostarcza informacje o wyjątkach dotyczących kończenia wątku. Wywoływanie tej metody zwykle kończy wątek.

AllocateDataSlot()

Przydziela nienazwane miejsce danych na wszystkich wątkach. Aby uzyskać lepszą wydajność, użyj pól oznaczonych atrybutem ThreadStaticAttribute .

AllocateNamedDataSlot(String)

Przydziela nazwane miejsce danych we wszystkich wątkach. Aby uzyskać lepszą wydajność, użyj pól oznaczonych atrybutem ThreadStaticAttribute .

BeginCriticalRegion()

Powiadamia hosta, że wykonanie ma wprowadzić region kodu, w którym skutki przerwania wątku lub nieobsługiwanego wyjątku mogą zagrozić innym zadaniam w domenie aplikacji.

BeginThreadAffinity()

Powiadamia hosta, że kod zarządzany ma zostać wykonany w celu wykonania instrukcji, które zależą od tożsamości bieżącego wątku systemu operacyjnego fizycznego.

DisableComObjectEagerCleanup()

Wyłącza automatyczne czyszczenie zawijania wywoływanych przez środowisko uruchomieniowe (RCW) dla bieżącego wątku.

EndCriticalRegion()

Powiadamia hosta, że wykonanie ma wprowadzić region kodu, w którym skutki przerwania wątku lub nieobsługiwanego wyjątku są ograniczone do bieżącego zadania.

EndThreadAffinity()

Powiadamia hosta, że kod zarządzany zakończył wykonywanie instrukcji, które zależą od tożsamości bieżącego wątku systemu operacyjnego fizycznego.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Finalize()

Gwarantuje, że zasoby są zwalniane, a inne operacje oczyszczania są wykonywane podczas odzyskiwania obiektu przez moduł odśmiecniania Thread pamięci.

FreeNamedDataSlot(String)

Eliminuje skojarzenie między nazwą a miejscem dla wszystkich wątków w procesie. Aby uzyskać lepszą wydajność, użyj pól oznaczonych atrybutem ThreadStaticAttribute .

GetApartmentState()

Zwraca wartość wskazującą ApartmentState stan mieszkania.

GetCompressedStack()
Przestarzałe.
Przestarzałe.

CompressedStack Zwraca obiekt, który może służyć do przechwytywania stosu dla bieżącego wątku.

GetCurrentProcessorId()

Pobiera identyfikator używany do wskazania, na którym procesorze jest wykonywany bieżący wątek.

GetData(LocalDataStoreSlot)

Pobiera wartość z określonego miejsca w bieżącym wątku w bieżącej domenie wątku. Aby uzyskać lepszą wydajność, użyj pól oznaczonych atrybutem ThreadStaticAttribute .

GetDomain()

Zwraca bieżącą domenę, w której działa bieżący wątek.

GetDomainID()

Zwraca unikatowy identyfikator domeny aplikacji.

GetHashCode()

Zwraca kod skrótu dla bieżącego wątku.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetNamedDataSlot(String)

Wyszukuje nazwane miejsce danych. Aby uzyskać lepszą wydajność, użyj pól oznaczonych atrybutem ThreadStaticAttribute .

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
Interrupt()

Przerywa wątek, który jest w stanie wątku WaitSleepJoin .

Join()

Blokuje wątek wywołujący, dopóki wątek reprezentowany przez to wystąpienie zakończy się, a jednocześnie będzie nadal wykonywać standardowe operacje COM i SendMessage pompowania.

Join(Int32)

Blokuje wątek wywołujący do momentu zakończenia wątku reprezentowanego przez to wystąpienie lub upływu określonego czasu, przy jednoczesnym kontynuowaniu standardowej pompowania COM i SendMessage.

Join(TimeSpan)

Blokuje wątek wywołujący do momentu zakończenia wątku reprezentowanego przez to wystąpienie lub upływu określonego czasu, przy jednoczesnym kontynuowaniu standardowej pompowania COM i SendMessage.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemoryBarrier()

Synchronizuje dostęp do pamięci w następujący sposób: Procesor wykonujący bieżący wątek nie może zmienić kolejności instrukcji w taki sposób, aby pamięć uzyskiwała dostęp przed wywołaniem do MemoryBarrier() wykonania po nawiązaniu dostępu do pamięci, które następują po wywołaniu metody MemoryBarrier().

ResetAbort()
Przestarzałe.

Anuluje Abort(Object) żądanie dla bieżącego wątku.

Resume()
Przestarzałe.
Przestarzałe.
Przestarzałe.

Wznawia wątek, który został zawieszony.

SetApartmentState(ApartmentState)

Ustawia stan mieszkania wątku przed jego uruchomieniem.

SetCompressedStack(CompressedStack)
Przestarzałe.
Przestarzałe.

Stosuje przechwycony CompressedStack do bieżącego wątku.

SetData(LocalDataStoreSlot, Object)

Ustawia dane w określonym miejscu w aktualnie uruchomionym wątku dla bieżącej domeny tego wątku. Aby uzyskać lepszą wydajność, użyj pól oznaczonych atrybutem ThreadStaticAttribute .

Sleep(Int32)

Zawiesza bieżący wątek dla określonej liczby milisekund.

Sleep(TimeSpan)

Zawiesza bieżący wątek przez określony czas.

SpinWait(Int32)

Powoduje, że wątek ma czekać liczbę razy zdefiniowaną iterations przez parametr .

Start()

Powoduje, że system operacyjny zmienia stan bieżącego wystąpienia na Running.

Start(Object)

Powoduje, że system operacyjny zmienia stan bieżącego wystąpienia na Running, a opcjonalnie dostarcza obiekt zawierający dane do użycia przez metodę wykonywaną przez wątek.

Suspend()
Przestarzałe.
Przestarzałe.
Przestarzałe.

Wstrzymuje wątek lub jeśli wątek jest już zawieszony, nie ma wpływu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TrySetApartmentState(ApartmentState)

Ustawia stan mieszkania wątku przed jego uruchomieniem.

UnsafeStart()

Powoduje, że system operacyjny zmienia stan bieżącego wystąpienia na Running.

UnsafeStart(Object)

Powoduje, że system operacyjny zmienia stan bieżącego wystąpienia na Running, a opcjonalnie dostarcza obiekt zawierający dane do użycia przez metodę wykonywaną przez wątek.

VolatileRead(Byte)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(Double)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(Int16)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(Int32)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(Int64)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(IntPtr)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(Object)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(SByte)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(Single)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(UInt16)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(UInt32)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(UInt64)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileRead(UIntPtr)

Odczytuje wartość pola. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: Jeśli odczyt lub zapis pojawi się po tej metodzie w kodzie, procesor nie może przenieść go przed tą metodą.

VolatileWrite(Byte, Byte)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(Double, Double)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(Int16, Int16)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(Int32, Int32)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(Int64, Int64)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(IntPtr, IntPtr)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(Object, Object)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(SByte, SByte)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(Single, Single)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(UInt16, UInt16)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(UInt32, UInt32)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(UInt64, UInt64)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

VolatileWrite(UIntPtr, UIntPtr)

Zapisuje wartość w polu. W systemach, które tego wymagają, wstawia barierę pamięci, która uniemożliwia procesorowi zmienianie kolejności operacji pamięci w następujący sposób: jeśli przed tą metodą w kodzie pojawi się odczyt lub zapis, procesor nie może przenieść go po tej metodzie.

Yield()

Powoduje, że wątek wywołujący daje wykonywanie do innego wątku, który jest gotowy do uruchomienia na bieżącym procesorze. System operacyjny wybiera wątek do uzyskania.

Jawne implementacje interfejsu

_Thread.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu.

_Thread.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkowo.

Zobacz też