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:
Procedura: creare e terminare thread (Guida per programmatori C#)
Procedura: utilizzare un pool di thread (Guida per programmatori C#)
Procedura: sincronizzare un thread producer e un thread consumer (Guida per programmatori C#)
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
Riferimenti
Delegati (Guida per programmatori C#)