Operazioni asincrone

Per il completamento di alcune operazioni del database, ad esempio le esecuzioni di comandi, può essere richiesto molto tempo. In questi casi usare le applicazioni a thread singolo per bloccare le altre operazioni e attendere il completamento del comando prima di riprenderle. Invece, la possibilità di assegnare un'operazione con esecuzione prolungata a un thread in background consente di mantenere attivo il thread in primo piano per tutta l'operazione. In un'applicazione Windows, ad esempio, la delega dell'operazione con esecuzione prolungata a un thread in background consente al thread dell'interfaccia utente di rimanere reattivo mentre viene eseguita l'operazione.

.NET Framework fornisce diversi modelli di progettazione asincroni standard che gli sviluppatori possono usare per sfruttare i thread in background e liberare i thread dell'interfaccia utente o i thread ad alta priorità e usarli per completare altre operazioni. ADO.NET supporta questi modelli di progettazione nella propria classe SqlCommand. In particolare, i metodi BeginExecuteNonQuery, BeginExecuteReader e BeginExecuteXmlReader, abbinati ai metodi EndExecuteNonQuery, EndExecuteReader e EndExecuteXmlReader, offrono il supporto asincrono.

Nota

La programmazione asincrona è una funzionalità centrale di .NET Framework e ADO.NET sfrutta pienamente i modelli di progettazione standard. Per altre informazioni sulle diverse tecniche asincrone disponibili per gli sviluppatori, vedere Chiamata di metodi sincroni in modalità asincrona.

Benché l'uso di tecniche asincrone con le funzionalità ADO.NET non comporti ulteriori considerazioni, è probabile che gli sviluppatori utilizzeranno le funzionalità asincrone più in ADO.NET che in altre aree di .NET Framework. Quando si creano applicazioni multithreading è importante essere a conoscenza sia dei vantaggi che dei potenziali problemi. Gli esempi riportati in questa sezione evidenziano diversi aspetti importanti che gli sviluppatori dovranno tenere in considerazione durante la creazione di applicazioni che incorporano funzionalità multithreading.

In questa sezione

Applicazioni Windows tramite callback
Include un esempio che illustra come eseguire un comando asincrono in modo sicuro, gestendo correttamente l'interazione con un modulo e il relativo contenuto da un thread separato.

Applicazioni ASP.NET tramite handle di attesa
Questo documento propone un esempio che spiega come eseguire più comandi simultanei da una pagina ASP.NET, usando gli handle di attesa per gestire l'operazione al completamento di tutti i comandi.

Polling in applicazioni console
È disponibile un esempio che illustra l'uso del polling per attendere il completamento dell'esecuzione di un comando asincrono da un'applicazione console. Questa tecnica è valida anche in una libreria di classi o in un'altra applicazione senza interfaccia utente.

Vedi anche