Share via


Threading (Guida per programmatori C#)

Aggiornamento: novembre 2007

Il threading consente di eseguire elaborazioni simultanee in un programma in C# in modo da poter eseguire più di un'operazione alla volta. È ad esempio possibile utilizzare il threading per monitorare l'input dell'utente, eseguire attività in background e gestire flussi di input simultanei. Lo spazio dei nomi System.Threading fornisce classi e interfacce che supportano la programmazione multithreading e consentono di eseguire facilmente attività quali la creazione e l'avvio di nuovi thread, la sincronizzazione di più thread, nonché la sospensione e l'interruzione di thread.

Per incorporare il threading nel codice C#, creare una funzione da eseguire all'esterno del thread principale e puntarvi un nuovo oggetto Thread. Nell'esempio di codice riportato di seguito viene creato un nuovo thread in un'applicazione C#:

System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod);

Nell'esempio di codice riportato di seguito viene avviato un nuovo thread in un'applicazione C#:

newThread.Start();

Il multithreading risolve i problemi legati ai tempi di risposta e al multitasking, ma potrebbe anche generare errori di condivisione e sincronizzazione delle risorse, perché i thread vengono interrotti e ripresi senza avviso in base a un meccanismo di pianificazione centrale. Per ulteriori informazioni, vedere Sincronizzazione di thread (Guida per programmatori C#). Per informazioni generali, vedere Utilizzo di thread e threading.

Cenni preliminari

Di seguito sono riportate le caratteristiche principali dei thread:

  • Consentono di eseguire elaborazioni simultanee in un programma scritto in C#.

  • Possono essere utilizzati facilmente grazie allo spazio dei nomi System.Threading di .NET Framework.

  • Condividono le risorse dell'applicazione. Per ulteriori informazioni, vedere Utilizzo di thread e threading.

Sezioni correlate

Per ulteriori informazioni, vedere i seguenti argomenti:

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 3.10 Ordine di esecuzione

  • 8.12 Istruzione lock

  • 10.5.3 Campi volatili

  • 10.8.1 Eventi di tipo campo

Vedere anche

Attività

Esempio di tecnologia della sincronizzazione monitor

Esempio di tecnologia della sincronizzazione di attesa

Concetti

Guida per programmatori C#

Mutex

Monitor

Operazioni interlocked

AutoResetEvent

Riferimenti

Thread

Mutex

Delegati (Guida per programmatori C#)

Altre risorse

HOW TO: Synchronize Access to a Shared Resource in a Multithreading Environment by Using Visual C# .NET