ProcessThread Класс

Определение

Представляет поток процесса операционной системы.Represents an operating system process thread.

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

Комментарии

Используйте ProcessThread для получения сведений о потоке, выполняющемся в данный момент в системе.Use ProcessThread to obtain information about a thread that is currently running on the system. Это позволяет, например, отслеживать характеристики производительности потока.Doing so allows you, for example, to monitor the thread's performance characteristics.

Важно!

Этот тип реализует интерфейс IDisposable.This type implements the IDisposable interface. По окончании использования выдаленную ему память следует прямо или косвенно освободить.When you have finished using the type, you should dispose of it either directly or indirectly. Чтобы сделать это прямо, вызовите его метод Dispose в блоке try/catch.To dispose of the type directly, call its Dispose method in a try/catch block. Чтобы сделать это косвенно, используйте языковые конструкции, такие как using (в C#) или Using (в Visual Basic).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в статье об интерфейсе IDisposable.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

Поток — это путь выполнения через программу.A thread is a path of execution through a program. Это самая маленькая единица выполнения, которую планирует Win32.It is the smallest unit of execution that Win32 schedules. Он состоит из стека, состояния регистров ЦП и записи в списке выполнения планировщика системы.It consists of a stack, the state of the CPU registers, and an entry in the execution list of the system scheduler.

Процесс состоит из одного или нескольких потоков, а также кода, данных и других ресурсов программы в памяти.A process consists of one or more threads and the code, data, and other resources of a program in memory. Типичными ресурсами программы являются открытые файлы, семафоры и динамически выделяемая память.Typical program resources are open files, semaphores, and dynamically allocated memory. Каждый ресурс процесса совместно используется всеми потоками этого процесса.Each resource of a process is shared by all that process's threads.

Программа выполняется, когда планировщик системы передает управление выполнением одному из потоков программы.A program executes when the system scheduler gives execution control to one of the program's threads. Планировщик определяет, какие потоки должны выполняться и когда.The scheduler determines which threads should run and when. Поток с более низким приоритетом может быть вынужден ожидать, пока потоки с более высоким приоритетом завершат свои задачи.A lower-priority thread might be forced to wait while higher-priority threads complete their tasks. На многопроцессорных компьютерах планировщик может перемещать отдельные потоки на разные процессоры, обеспечивая балансировку нагрузки на ЦП.On multiprocessor computers, the scheduler can move individual threads to different processors, thus balancing the CPU load.

Каждый процесс начинается с одного потока, который называется основным потоком.Each process starts with a single thread, which is known as the primary thread. Любой поток может создавать дополнительные потоки.Any thread can create additional threads. Все потоки в процессе совместно используют адресное пространство этого процесса.All the threads within a process share the address space of that process.

Основной поток не обязательно расположен по первому индексу в коллекции.The primary thread is not necessarily located at the first index in the collection.

Примечание

Начиная с версии .NET Framework 2,0, возможность ссылаться на данные счетчиков производительности на других компьютерах была исключена для многих методов и свойств .NET Framework.Starting with the .NET Framework version 2.0, the ability to reference performance counter data on other computers has been eliminated for many of the .NET Framework methods and properties. Это изменение было внесено для повышения производительности и включения использования класса ProcessThread без прав администратора.This change was made to improve performance and to enable non-administrators to use the ProcessThread class. В результате некоторые приложения, которые не получают исключения в более ранних версиях .NET Framework теперь могут получить NotSupportedException.As a result, some applications that did not get exceptions in earlier versions of the .NET Framework may now get a NotSupportedException. Затронутые методы и свойства слишком много для перечисления, но сведения об исключении были добавлены в разделы затронутых элементов.The methods and properties affected are too numerous to list here, but the exception information has been added to the affected member topics.

Потоки процесса выполняются по отдельности и не знают друг от друга, если не сделать их видимыми друг для друга.The threads of a process execute individually and are unaware of each other unless you make them visible to each other. Однако потоки, которые совместно используют общие ресурсы, должны координировать свою работу с помощью семафоров или другого метода межпроцессного взаимодействия.Threads that share common resources, however, must coordinate their work by using semaphores or another method of interprocess communication.

Чтобы получить коллекцию всех объектов ProcessThread, связанных с текущим процессом, получите свойство Threads экземпляра Process.To get a collection of all the ProcessThread objects associated with the current process, get the Threads property of the Process instance.

Свойства

BasePriority

Возвращает базовый приоритет потока.Gets the base priority of the thread.

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.Gets a value indicating whether the component can raise an event.

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

Возвращает контейнер IContainer, содержащий компонент Component.Gets the IContainer that contains the Component.

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

Возвращает текущий приоритет потока.Gets the current priority of the thread.

DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.Gets a value that indicates whether the Component is currently in design mode.

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

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.Gets the list of event handlers that are attached to this Component.

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

Возвращает уникальный идентификатор потока.Gets the unique identifier of the thread.

IdealProcessor

Устанавливает предпочтительный процессор для выполнения этого потока.Sets the preferred processor for this thread to run on.

PriorityBoostEnabled

Возвращает или задает значение, указывающее, должна ли операционная система временно увеличивать приоритет соответствующего потока всякий раз, когда основное окно процесса, которому принадлежит данный поток, получает фокус.Gets or sets a value indicating whether the operating system should temporarily boost the priority of the associated thread whenever the main window of the thread's process receives the focus.

PriorityLevel

Возвращает или задает уровень приоритета потока.Gets or sets the priority level of the thread.

PrivilegedProcessorTime

Возвращает количество времени, затрачиваемое потоком на выполнение кода внутри ядра операционной системы.Gets the amount of time that the thread has spent running code inside the operating system core.

ProcessorAffinity

Задает процессоры, на которых может выполняться соответствующий поток.Sets the processors on which the associated thread can run.

Site

Возвращает или задает ISite объекта Component.Gets or sets the ISite of the Component.

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

Возвращает адрес функции в памяти, которая была вызвана операционной системой и запустила этот поток.Gets the memory address of the function that the operating system called that started this thread.

StartTime

Возвращает время запуска потока операционной системой.Gets the time that the operating system started the thread.

ThreadState

Возвращает текущее состояние данного потока.Gets the current state of this thread.

TotalProcessorTime

Возвращает общее количество времени, которое потратил поток на обработку процессором.Gets the total amount of time that this thread has spent using the processor.

UserProcessorTime

Возвращает количество времени, которое поток потратил на выполнение кода внутри приложения.Gets the amount of time that the associated thread has spent running code inside the application.

WaitReason

Возвращает причину, по которой поток находится в состоянии ожидания.Gets the reason that the thread is waiting.

Методы

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

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

Освобождает все ресурсы, занятые модулем Component.Releases all resources used by the Component.

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

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

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

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

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

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

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

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.Returns an object that represents a service provided by the Component or by its Container.

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

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

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

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.Obtains a lifetime service object to control the lifetime policy for this instance.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

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

Отменяет идеальный процессор для данного потока, указывая тем самым на отсутствие единственного идеального процессора.Resets the ideal processor for this thread to indicate that there is no single ideal processor. Другими словами, для потока идеален любой процессор.In other words, so that any processor is ideal.

ToString()

Возвращает объект String, содержащий имя Component, если оно есть.Returns a String containing the name of the Component, if any. Этот метод не следует переопределять.This method should not be overridden.

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

События

Disposed

Происходит при удалении компонента вызовом метода Dispose().Occurs when the component is disposed by a call to the Dispose() method.

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

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

Дополнительно