Modelli di progettazione della programmazione asincrona

Aggiornamento: novembre 2007

Le operazioni asincrone vengono in genere utilizzate per eseguire attività per il cui completamento potrebbe essere necessario un periodo di tempo prolungato, ad esempio l'apertura di file di grandi dimensioni, la connessione a computer remoti o l'esecuzione di query su database. L'esecuzione di un'operazione asincrona avviene in un thread separato da quello principale dell'applicazione. Quando un'applicazione chiama i metodi per elaborare un'operazione in modo asincrono, può continuare a essere eseguita mentre il metodo asincrono completa l'attività.

In .NET Framework sono disponibili due modelli di progettazione per le operazioni asincrone:

  • Operazioni asincrone che utilizzano oggetti IAsyncResult.

  • Operazioni asincrone che utilizzano eventi.

Il modello di progettazione IAsyncResult consente un'ampia gamma di modelli di programmazione, ma è più complesso da comprendere e fornisce una flessibilità superiore a quella richiesta dalla maggior parte delle applicazioni. È opportuno che gli sviluppatori di librerie di classi implementino i metodi asincroni utilizzando il modello guidato da eventi, se possibile. In alcuni casi può essere necessario implementare anche il modello basato su IAsyncResult.

Per la documentazione relativa alle operazioni asincrone che utilizzano gli eventi, vedere Cenni preliminari sul modello asincrono basato su eventi.

La programmazione asincrona è una funzionalità supportata da diverse aree di .NET Framework, incluse le seguenti:

  • I/O di file, I/O di flusso, I/O di socket.

  • Rete.

  • Canali remoti (HTTP, TCP) e proxy.

  • Servizi Web XML creati mediante ASP.NET.

  • Web Form di ASP.NET.

  • Accodamento messaggi tramite la classe MessageQueue.

In questa sezione

Vedere anche

Concetti

I/O di file asincrono

Riferimenti

AsyncCallback

IAsyncResult

Delegate

AsyncOperationManager

BackgroundWorker