ProcessThread Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa um thread de processo do sistema operativo.
public ref class ProcessThread : System::ComponentModel::Component
public class ProcessThread : System.ComponentModel.Component
type ProcessThread = class
inherit Component
Public Class ProcessThread
Inherits Component
- Herança
Observações
Use ProcessThread para obter informações sobre um thread que está atualmente a correr no sistema. Ao fazê-lo, permite-se, por exemplo, monitorizar as características de desempenho da thread.
Importante
Este tipo implementa a interface IDisposable. Quando terminar de usar o tipo, você deve eliminá-lo direta ou indiretamente. Para descartar o tipo diretamente, chame seu método Dispose em um bloco try/catch. Para descartá-lo indiretamente, use uma construção de linguagem como using (em C#) ou Using (em Visual Basic). Para obter mais informações, consulte a seção "Usando um objeto que implementa IDisposable" no tópico da IDisposable interface.
Um thread é um caminho de execução através de um programa. É a menor unidade de execução que o Win32 agenda. Consiste numa pilha, no estado dos registos da CPU e numa entrada na lista de execução do escalonador do sistema.
Um processo consiste em uma ou mais threads e o código, dados e outros recursos de um programa na memória. Os recursos típicos do programa são ficheiros abertos, semáforos e memória alocada dinamicamente. Cada recurso de um processo é partilhado por todos os threads desse processo.
Um programa é executado quando o planificador do sistema dá controlo de execução a um dos threads do programa. O escalonador determina quais threads devem ser executados e quando. Um thread de menor prioridade pode ser forçado a esperar enquanto os threads de prioridade superior completam as suas tarefas. Em computadores multiprocessador, o escalonador pode mover threads individuais para diferentes processadores, equilibrando assim a carga da CPU.
Cada processo começa com um único thread, conhecido como thread principal. Qualquer thread pode criar threads adicionais. Todos os threads dentro de um processo partilham o espaço de endereçamento desse processo.
O fio principal não está necessariamente localizado no primeiro índice da coleção.
Note
A partir da versão 2.0 do .NET Framework, a capacidade de referenciar dados de contadores de desempenho noutros computadores foi eliminada para muitos dos métodos e propriedades do .NET Framework. Esta alteração foi feita para melhorar o desempenho e permitir que não administradores utilizassem a ProcessThread classe. Como resultado, algumas aplicações que não receberam exceções em versões anteriores do .NET Framework podem agora receber um NotSupportedException. Os métodos e propriedades afetados são demasiado numerosos para listar aqui, mas a informação excecional foi adicionada aos tópicos dos membros afetados.
Os threads de um processo executam-se individualmente e não têm conhecimento uns dos outros, a menos que os tornes visíveis uns para os outros. Os threads que partilham recursos comuns, no entanto, têm de coordenar o seu trabalho usando semáforos ou outro método de comunicação entre processos.
Para obter uma coleção de todos os ProcessThread objetos associados ao processo atual, obtenha a Threads propriedade da Process instância.
Propriedades
| Name | Description |
|---|---|
| BasePriority |
Fica com a prioridade base do tópico. |
| CanRaiseEvents |
Obtém um valor que indica se o componente pode gerar um evento. (Herdado de Component) |
| Container |
Obtém o IContainer que contém o Component. (Herdado de Component) |
| CurrentPriority |
Fica com a prioridade atual do tópico. |
| DesignMode |
Obtém um valor que indica se o Component está atualmente em modo de design. (Herdado de Component) |
| Events |
Obtém a lista de gestores de eventos que estão ligados a isto Component. (Herdado de Component) |
| Id |
Obtém o identificador único do tópico. |
| IdealProcessor |
Define o processador preferido para esta thread correr. |
| PriorityBoostEnabled |
Recebe ou define um valor que indica se o sistema operativo deve aumentar temporariamente a prioridade da thread associada sempre que a janela principal do processo da thread recebe o foco. |
| PriorityLevel |
Obtém ou define o nível de prioridade da thread. |
| PrivilegedProcessorTime |
Obtém o tempo que o thread passou a executar código dentro do núcleo do sistema operativo. |
| ProcessorAffinity |
Define os processadores onde o thread associado pode correr. |
| Site |
Obtém ou define o ISite do Component. (Herdado de Component) |
| StartAddress |
Obtém o endereço de memória da função que o sistema operativo chamou e que iniciou este tópico. |
| StartTime |
Obtém a hora em que o sistema operativo iniciou a thread. |
| ThreadState |
Percebo o estado atual deste tópico. |
| TotalProcessorTime |
Obtém o tempo total que este tópico passou a usar o processador. |
| UserProcessorTime |
Obtém o tempo que o thread associado passou a executar código dentro da aplicação. |
| WaitReason |
Percebe a razão pela qual o tópico está à espera. |
Métodos
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Dispose() |
Liberta todos os recursos utilizados pelo Component. (Herdado de Component) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo Component e opcionalmente liberta os recursos geridos. (Herdado de Component) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetService(Type) |
Devolve um objeto que representa um serviço fornecido pelo Component ou pelo seu Container. (Herdado de Component) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| ResetIdealProcessor() |
Reinicia o processador ideal para este tópico para indicar que não existe um único processador ideal. Ou seja, para que qualquer processador seja ideal. |
| ToString() |
Devolve a String contendo o nome do Component, se existir. Este método não deve ser ultrapassado. (Herdado de Component) |
evento
| Name | Description |
|---|---|
| Disposed |
Ocorre quando o componente é eliminado por uma chamada ao Dispose() método. (Herdado de Component) |