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


ProcessThread Класс

Определение

Представляет поток процесса операционной системы.

public ref class ProcessThread : System::ComponentModel::Component
public ref class ProcessThread
public class ProcessThread : System.ComponentModel.Component
public class ProcessThread
type ProcessThread = class
    inherit Component
type ProcessThread = class
Public Class ProcessThread
Inherits Component
Public Class ProcessThread
Наследование
Наследование
ProcessThread

Комментарии

Используйте для ProcessThread получения сведений о потоке, который в настоящее время выполняется в системе. Это позволяет, например, отслеживать характеристики производительности потока.

Важно!

Этот тип реализует интерфейс IDisposable. По окончании использования выдаленную ему память следует прямо или косвенно освободить. Чтобы сделать это прямо, вызовите его метод Dispose в блоке try/catch. Чтобы сделать это косвенно, используйте языковые конструкции, такие как using (в C#) или Using (в Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в статье об интерфейсе IDisposable.

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

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

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

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

Основной поток не обязательно находится по первому индексу в коллекции.

Примечание

Начиная с платформа .NET Framework версии 2.0, возможность ссылаться на данные счетчиков производительности на других компьютерах была исключена для многих методов и свойств платформа .NET Framework. Это изменение было внесено для повышения производительности и предоставления возможности неадминистраторам ProcessThread использовать класс . В результате некоторые приложения, которые не получили исключения в более ранних версиях платформа .NET Framework, теперь могут получить .NotSupportedException Затронутые методы и свойства слишком многочисленны для перечисления здесь, но сведения об исключении были добавлены в затронутые разделы-члены.

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

Чтобы получить коллекцию всех объектов, ProcessThread связанных с текущим процессом Threads , получите свойство экземпляра Process .

Свойства

BasePriority

Возвращает базовый приоритет потока.

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

(Унаследовано от Component)
Container

Возвращает объект IContainer, который содержит коллекцию Component.

(Унаследовано от Component)
CurrentPriority

Возвращает текущий приоритет потока.

DesignMode

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

(Унаследовано от Component)
Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

(Унаследовано от Component)
Id

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

IdealProcessor

Устанавливает предпочтительный процессор для выполнения этого потока.

PriorityBoostEnabled

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

PriorityLevel

Возвращает или задает уровень приоритета потока.

PrivilegedProcessorTime

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

ProcessorAffinity

Задает процессоры, на которых может выполняться соответствующий поток.

Site

Получает или задает ISite объекта Component.

(Унаследовано от Component)
StartAddress

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

StartTime

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

ThreadState

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

TotalProcessorTime

Возвращает общее количество времени, которое потратил поток на обработку процессором.

UserProcessorTime

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

WaitReason

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

Методы

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.

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

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

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

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

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

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

(Унаследовано от MarshalByRefObject)
GetService(Type)

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

(Унаследовано от Component)
GetType()

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

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

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

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

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

(Унаследовано от MarshalByRefObject)
ResetIdealProcessor()

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

ToString()

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

(Унаследовано от Component)
ToString()

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

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

События

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

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

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

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