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 и |
| 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) |
Вынуждает поток выполнять ожидание столько раз, сколько определено параметром |
| 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) |
Предоставляет доступ к открытым свойствам и методам объекта. |
Применяется к
Потокобезопасность
Данный тип потокобезопасен.