Condividi tramite


ProcessThread Classe

Definizione

Rappresenta un thread di processo del sistema operativo.

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
Ereditarietà
Ereditarietà
ProcessThread

Commenti

Usare ProcessThread per ottenere informazioni su un thread attualmente in esecuzione nel sistema. In questo modo, ad esempio, è possibile monitorare le caratteristiche delle prestazioni del thread.

Importante

Questo tipo implementa l'interfaccia IDisposable . Al termine dell'uso del tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il Dispose relativo metodo in un try/catch blocco. Per eliminarlo indirettamente, usare un costrutto del linguaggio, ad using esempio (in C#) o Using (in Visual Basic). Per altre informazioni, vedere la sezione "Uso di un oggetto che implementa IDisposable" nell'argomento relativo all'interfaccia IDisposable .

Un thread è un percorso di esecuzione tramite un programma. È l'unità di esecuzione più piccola pianificata da Win32. È costituito da uno stack, dallo stato dei registri della CPU e da una voce nell'elenco di esecuzione dell'utilità di pianificazione di sistema.

Un processo è costituito da uno o più thread e il codice, i dati e altre risorse di un programma in memoria. Le risorse di programma tipiche sono file aperti, semafori e memoria allocata dinamicamente. Ogni risorsa di un processo viene condivisa da tutti i thread del processo.

Un programma viene eseguito quando l'utilità di pianificazione del sistema assegna il controllo di esecuzione a uno dei thread del programma. L'utilità di pianificazione determina quali thread devono essere eseguiti e quando. Un thread con priorità più bassa potrebbe essere costretto ad attendere mentre i thread con priorità più alta completano le attività. Nei computer multiprocessore, l'utilità di pianificazione può spostare singoli thread in processori diversi, bilanciando così il carico della CPU.

Ogni processo inizia con un singolo thread, noto come thread primario. Qualsiasi thread può creare thread aggiuntivi. Tutti i thread all'interno di un processo condividono lo spazio degli indirizzi di tale processo.

Il thread primario non si trova necessariamente in corrispondenza del primo indice dell'insieme.

Annotazioni

A partire da .NET Framework versione 2.0, la possibilità di fare riferimento ai dati dei contatori delle prestazioni in altri computer è stata eliminata per molti dei metodi e delle proprietà di .NET Framework. Questa modifica è stata apportata per migliorare le prestazioni e consentire agli utenti non amministratori di usare la ProcessThread classe . Di conseguenza, alcune applicazioni che non hanno avuto eccezioni nelle versioni precedenti di .NET Framework possono ora ottenere un .NotSupportedException I metodi e le proprietà interessati sono troppi da elencare qui, ma le informazioni sulle eccezioni sono state aggiunte agli argomenti relativi ai membri interessati.

I thread di un processo vengono eseguiti singolarmente e non si conoscono l'uno dall'altro, a meno che non vengano visualizzati l'uno all'altro. I thread che condividono risorse comuni, tuttavia, devono coordinare il lavoro usando semafori o un altro metodo di comunicazione interprocesso.

Per ottenere una raccolta di tutti gli ProcessThread oggetti associati al processo corrente, ottenere la Threads proprietà dell'istanza Process .

Proprietà

Nome Descrizione
BasePriority

Ottiene la priorità di base del thread.

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
Container

Ottiene l'oggetto IContainer contenente l'oggetto Component.

(Ereditato da Component)
CurrentPriority

Ottiene la priorità corrente del thread.

DesignMode

Ottiene un valore che indica se è Component attualmente in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi associati a questo Componentoggetto .

(Ereditato da Component)
Id

Ottiene l'identificatore univoco del thread.

IdealProcessor

Imposta il processore preferito su cui eseguire questo thread.

PriorityBoostEnabled

Ottiene o imposta un valore che indica se il sistema operativo deve aumentare temporaneamente la priorità del thread associato ogni volta che la finestra principale del processo del thread riceve lo stato attivo.

PriorityLevel

Ottiene o imposta il livello di priorità del thread.

PrivilegedProcessorTime

Ottiene la quantità di tempo impiegato dal thread per l'esecuzione del codice all'interno del core del sistema operativo.

ProcessorAffinity

Imposta i processori in cui il thread associato può essere eseguito.

Site

Ottiene o imposta l'oggetto ISite dell'oggetto Component.

(Ereditato da Component)
StartAddress

Ottiene l'indirizzo di memoria della funzione chiamata dal sistema operativo che ha avviato questo thread.

StartTime

Ottiene l'ora in cui il sistema operativo ha avviato il thread.

ThreadState

Ottiene lo stato corrente del thread.

TotalProcessorTime

Ottiene la quantità totale di tempo impiegato dal thread usando il processore.

UserProcessorTime

Ottiene la quantità di tempo impiegato dal thread associato per l'esecuzione del codice all'interno dell'applicazione.

WaitReason

Ottiene il motivo per cui il thread è in attesa.

Metodi

Nome Descrizione
CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, rilascia le risorse gestite.

(Ereditato da Component)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Restituisce un oggetto che rappresenta un servizio fornito da Component o da Container.

(Ereditato da Component)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto corrente MarshalByRefObject .

(Ereditato da MarshalByRefObject)
ResetIdealProcessor()

Reimposta il processore ideale per questo thread per indicare che non esiste un singolo processore ideale. In altre parole, in modo che qualsiasi processore sia ideale.

ToString()

Restituisce un oggetto String contenente il nome dell'oggetto Component, se presente. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

Nome Descrizione
Disposed

Si verifica quando il componente viene eliminato da una chiamata al Dispose() metodo .

(Ereditato da Component)

Si applica a

Vedi anche