Поделиться через


Thread Класс

Определение

Создает и контролирует поток, задает приоритет и возвращает статус.

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
Наследование
Наследование
Thread
Атрибуты
Реализации

Комментарии

Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для Thread.

Конструкторы

Thread(ParameterizedThreadStart)

Инициализирует новый экземпляр класса Thread, при этом указывается делегат, позволяющий объекту быть переданным в поток при запуске потока.

Thread(ParameterizedThreadStart, Int32)

Инициализирует новый экземпляр класса Thread, при этом указывается делегат, позволяющий объекту быть переданным в поток при запуске потока с указанием максимального размера стека для потока.

Thread(ThreadStart)

Инициализирует новый экземпляр класса Thread.

Thread(ThreadStart, Int32)

Инициализирует новый экземпляр класса Thread, указывая максимальный размер стека для потока.

Свойства

ApartmentState
Устаревшие..
Устаревшие..

Возвращает или задает модель "apartment" для данного потока.

CurrentContext

Возвращает текущий контекст, в котором выполняется поток.

CurrentCulture

Получает или задает язык и региональные параметры для текущего потока.

CurrentPrincipal

Возвращает или задает текущего участника потока (для безопасности на основе ролей).

CurrentThread

Возвращает выполняющийся в данный момент поток.

CurrentUICulture

Получает или задает текущие язык и региональные параметры, используемые диспетчером ресурсов для поиска ресурсов, связанных с языком и региональными параметрами, во время выполнения.

ExecutionContext

Возвращает объект ExecutionContext, содержащий сведения о различных контекстах текущего потока.

IsAlive

Возвращает значение, показывающее статус выполнения текущего потока.

IsBackground

Возвращает или задает значение, показывающее, является ли поток фоновым.

IsThreadPoolThread

Возвращает значение, показывающее, принадлежит ли поток к группе управляемых потоков.

ManagedThreadId

Возвращает уникальный идентификатор текущего управляемого потока.

Name

Получает или задает имя потока.

Priority

Возвращает или задает значение, указывающее на планируемый приоритет потока.

ThreadState

Возвращает значение, содержащее состояния текущего потока.

Методы

Abort()
Устаревшие..

Вызывает исключение ThreadAbortException в вызвавшем его потоке для того, чтобы начать процесс завершения потока. Вызов данного метода обычно завершает поток.

Abort(Object)
Устаревшие..

Вызывает исключение ThreadAbortException в вызвавшем его потоке для того, чтобы начать процесс завершения потока, в то же время предоставляя сведения об исключении касательно исключения завершения потока. Вызов данного метода обычно завершает поток.

AllocateDataSlot()

Выделяет неименованную область данных всем потокам. Для улучшения производительности используйте поля, отмеченные атрибутом ThreadStaticAttribute.

AllocateNamedDataSlot(String)

Выделяет именованную область данных всем потокам. Для улучшения производительности используйте поля, отмеченные атрибутом ThreadStaticAttribute.

BeginCriticalRegion()

Уведомляет узел, что выполнение близится ко входу в область кода, в которой эффекты прерывания выполнения или неуправляемого выполнения могут повлиять на другие задачи в домене приложения.

BeginThreadAffinity()

Уведомляет узел, что управляемый код близок к выполнению инструкций, зависящих от идентификации текущего потока операционной системы.

DisableComObjectEagerCleanup()

Отключает автоматическую очистку вызываемых оболочек времени выполнения (RCW) для текущего потока.

EndCriticalRegion()

Уведомляет узел, что выполнение близится ко входу в область кода, в которой эффекты прерывания выполнения или неуправляемой ошибки ограничены текущей задачей.

EndThreadAffinity()

Уведомляет хост об окончании выполнения кодом инструкций, которые зависят от идентификатора текущего потока в операционной системе.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Обеспечивает освобождение ресурсов и выполнение других завершающих операций, когда сборщик мусора восстанавливает объект Thread.

FreeNamedDataSlot(String)

Удаляет связь между названием и областью для всех потоков в процессе. Для улучшения производительности используйте поля, отмеченные атрибутом ThreadStaticAttribute.

GetApartmentState()

Возвращает значение типа ApartmentState, показывающее состояние апартамента.

GetCompressedStack()
Устаревшие..
Устаревшие..

Возвращает объект CompressedStack, который может быть использован для записи стека текущего потока.

GetCurrentProcessorId()

Возвращает идентификатор, используемый для указания того, какой процессор исполняет текущий поток.

GetData(LocalDataStoreSlot)

Извлекает значение из заданной области текущего потока, внутри текущей области текущего потока. Для улучшения производительности используйте поля, отмеченные атрибутом ThreadStaticAttribute.

GetDomain()

Возвращает текущую область, в которой выполняется текущий поток.

GetDomainID()

Возвращает уникальный идентификатор домена приложения.

GetHashCode()

Возвращает хэш-код текущего потока.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetNamedDataSlot(String)

Ищет именованную область данных. Для улучшения производительности используйте поля, отмеченные атрибутом ThreadStaticAttribute.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Interrupt()

Прерывает работу потока, находящегося в состоянии WaitSleepJoin.

Join()

Блокирует вызывающий поток до завершения потока, представленного экземпляром, продолжая отправлять стандартные сообщения COM и SendMessage.

Join(Int32)

Блокирует вызывающий поток до завершения потока, представленного экземпляром, или истечения указанного времени, продолжая отправлять стандартные сообщения COM и SendMessage.

Join(TimeSpan)

Блокирует вызывающий поток до завершения потока, представленного экземпляром, или истечения указанного времени, продолжая отправлять стандартные сообщения COM и SendMessage.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemoryBarrier()

Синхронизирует доступ к памяти следующим образом: процессор, выполняющий текущий поток, не способен упорядочить инструкции так, чтобы обращения к памяти до вызова метода MemoryBarrier() выполнялись после обращений к памяти, следующих за вызовом метода MemoryBarrier().

ResetAbort()
Устаревшие..

Отменяет метод Abort(Object), запрошенный для текущего потока.

Resume()
Устаревшие..
Устаревшие..
Устаревшие..

Возобновляет приостановленную работу потока.

SetApartmentState(ApartmentState)

Задает модель "apartment" для потока до его запуска.

SetCompressedStack(CompressedStack)
Устаревшие..
Устаревшие..

Применяет записанное значение CompressedStack к текущему потоку.

SetData(LocalDataStoreSlot, Object)

Задает данные в указанной области для текущей области потока, выполняющегося в данный момент. Для улучшения производительности используйте поля, отмеченные атрибутом ThreadStaticAttribute.

Sleep(Int32)

Приостанавливает текущий поток на заданное количество миллисекунд.

Sleep(TimeSpan)

Приостанавливает текущий поток на заданное время.

SpinWait(Int32)

Вынуждает поток выполнять ожидание столько раз, сколько определено параметром iterations.

Start()

Вынуждает операционную систему изменить состояние текущего экземпляра на Running.

Start(Object)

Заставляет операционную систему изменить состояние текущего экземпляра на Running, а также (необязательно) передает объект с данными, используемыми методом в потоке.

Suspend()
Устаревшие..
Устаревшие..
Устаревшие..

Приостанавливает работу потока; если работа потока уже приостановлена, не оказывает влияния.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TrySetApartmentState(ApartmentState)

Задает модель "apartment" для потока до его запуска.

UnsafeStart()

Вынуждает операционную систему изменить состояние текущего экземпляра на Running.

UnsafeStart(Object)

Заставляет операционную систему изменить состояние текущего экземпляра на Running, а также (необязательно) передает объект с данными, используемыми методом в потоке.

VolatileRead(Byte)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(Double)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(Int16)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(Int32)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(Int64)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(IntPtr)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(Object)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(SByte)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(Single)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(UInt16)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(UInt32)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(UInt64)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileRead(UIntPtr)
Устаревшие..

Считывает значение поля. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется после данного метода в коде, процессор не сможет переместить ее перед этим методом.

VolatileWrite(Byte, Byte)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(Double, Double)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(Int16, Int16)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(Int32, Int32)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(Int64, Int64)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(IntPtr, IntPtr)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(Object, Object)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(SByte, SByte)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(Single, Single)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(UInt16, UInt16)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(UInt32, UInt32)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(UInt64, UInt64)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

VolatileWrite(UIntPtr, UIntPtr)
Устаревшие..

Записывает значение в поле. В системах, которым это необходимо, вставляет барьер памяти, не позволяющий процессору изменять порядок операций памяти следующим образом: если операция чтения или записи появляется перед данным методом в коде, процессор не сможет поместить ее после этого метода.

Yield()

Позволяет вызвавшему потоку передать выполнение другому потоку, готовому к использованию на текущем процессоре. Операционная система выбирает, какому потоку передается выполнение.

Явные реализации интерфейса

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

_Thread.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

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

Предоставляет доступ к открытым свойствам и методам объекта.

Применяется к

Потокобезопасность

Данный тип потокобезопасен.

См. также раздел