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) |