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 è possibile, ad esempio, monitorare le caratteristiche delle prestazioni del thread.

Importante

Il tipo implementa l'interfaccia IDisposable. Dopo aver utilizzato il tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il metodo Dispose in un blocco try/catch. Per eliminarlo indirettamente, utilizzare un costrutto di linguaggio come ad esempio using 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. È la più piccola unità di esecuzione 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 del 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 è condivisa da tutti i thread del processo.

Un programma viene eseguito quando l'utilità di pianificazione del sistema fornisce 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à inferiore potrebbe essere costretto a attendere mentre i thread con priorità superiore 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 nel primo indice della raccolta.

Nota

A partire da .NET Framework versione 2.0, la possibilità di fare riferimento ai dati del contatore 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 amministratori non di usare la ProcessThread classe. Di conseguenza, alcune applicazioni che non hanno avuto eccezioni nelle versioni precedenti di .NET Framework possono ora ottenere un NotSupportedExceptionoggetto . I metodi e le proprietà interessati sono troppo numerosi da elencare qui, ma le informazioni sull'eccezione sono state aggiunte agli argomenti del membro interessati.

I thread di un processo vengono eseguiti singolarmente e non sono a conoscenza degli altri a meno che non siano visibili tra loro. I thread che condividono risorse comuni, tuttavia, devono coordinare il loro lavoro usando i semafori o un altro metodo di comunicazione tra processi.

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

Proprietà

BasePriority

Ottiene la priorità base del thread.

CanRaiseEvents

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

(Ereditato da Component)
Container

Ottiene l'oggetto IContainer che contiene Component.

(Ereditato da Component)
CurrentPriority

Ottiene la priorità corrente del thread.

DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.

(Ereditato da Component)
Id

Ottiene l'identificatore univoco del thread.

IdealProcessor

Imposta il processore preferenziale su cui eseguire questo thread.

PriorityBoostEnabled

Ottiene o imposta un valore che indica se il sistema operativo deve incrementare temporaneamente la priorità del thread associato ogni volta che la finestra principale del processo del thread diventa attiva.

PriorityLevel

Ottiene o imposta il livello di priorità del thread.

PrivilegedProcessorTime

Ottiene l'intervallo di tempo che il thread ha impiegato nell'esecuzione del codice all'interno del nucleo centrale del sistema operativo.

ProcessorAffinity

Imposta il processore sul quale può essere eseguito il thread associato.

Site

Ottiene o imposta l'oggetto ISite di Component.

(Ereditato da Component)
StartAddress

Ottiene l'indirizzo di memoria della funzione chiamata dal sistema operativo per l'avvio di questo thread.

StartTime

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

ThreadState

Ottiene lo stato corrente di questo thread.

TotalProcessorTime

Ottiene la quantità totale di tempo impiegata da questo thread nell'utilizzo del processore.

UserProcessorTime

Ottiene la quantità di tempo che il thread associato ha impiegato nell'esecuzione del codice all'interno dell'applicazione.

WaitReason

Ottiene il motivo per cui il thread è in attesa.

Metodi

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione 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, 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.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto 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 dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
ResetIdealProcessor()

Reimposta il processore ideale di questo thread a indicare che non è presente un singolo processore ideale. In altre parole, ogni altro processore può essere ideale.

ToString()

Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

Disposed

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

(Ereditato da Component)

Si applica a

Vedi anche