Condividi tramite


Multithreading nei componenti

Aggiornamento: novembre 2007

Il componente BackgroundWorker implementa alcune funzionalità di threading nello spazio dei nomi System.Threading. Tale componente rappresenta il modo più semplice per l'implementazione delle funzionalità di multithreading. Per ulteriori informazioni, vedere Cenni preliminari sul componente BackgroundWorker.

Con il termine multithreading o modello di threading Free si intende la capacità di un'applicazione di eseguire contemporaneamente più thread di operazioni. Un esempio di applicazione multithreading è rappresentata da un programma che riceve l'input dell'utente su un thread, esegue un'ampia gamma di calcoli complessi su un secondo thread e aggiorna un database su un terzo thread. In un'applicazione a thread singolo è possibile che un utente impieghi del tempo ad attendere il completamento dei calcoli o degli aggiornamenti del database. In un'applicazione con multithreading questi processi possono essere eseguiti in background, evitando inutili sprechi di tempo.

Il multithreading può essere uno strumento potente da utilizzare nella programmazione dei componenti. Creando dei componenti multithreading è possibile ottenere componenti in grado di eseguire in background calcoli complessi, lasciando l'interfaccia utente libera di rispondere agli input dell'utente.

Anche se il multithreading può essere uno strumento potente, l'applicazione corretta del multithreading può rivelarsi piuttosto complessa. L'implementazione non corretta del codice multithreading può comportare un rallentamento delle prestazioni delle applicazioni o causare persino un blocco delle applicazioni. Negli argomenti riportati di seguito viene fornita un'introduzione ad alcune considerazioni e suggerimenti utili per la programmazione multithreading.

.NET Framework offre numerose opzioni per il multithreading nei componenti. La funzionalità presente nello spazio dei nomi System.Threading è un'opzione. Un'altra opzione è rappresentata dal modello asincrono. Il componente BackgroundWorker è un'implementazione del modello asincrono e fornisce la funzionalità avanzata incapsulata in un componente per ottenere una maggiore semplicità di utilizzo.

In questa sezione

Riferimenti

  • Classe BackgroundWorker
    Consente di eseguire un'operazione su un thread dedicato separato.

  • Thread
    Sono riportate informazioni sulla sintassi e sui membri dal riferimento a .NET Framework.

Sezioni correlate

Vedere anche

Altre risorse

Modifica di componenti

Modelli di progettazione della programmazione asincrona