Condividi tramite


Operazioni asincrone

Il completamento di alcune operazioni di database, ad esempio le esecuzioni dei comandi, può richiedere molto tempo. In tal caso, le applicazioni a thread singolo devono bloccare altre operazioni e attendere il completamento del comando prima di poter continuare le proprie operazioni. Al contrario, la possibilità di assegnare l'operazione a esecuzione prolungata a un thread in background consente al thread in primo piano di rimanere attivo durante l'operazione. In un'applicazione Windows, ad esempio, la delega dell'operazione a esecuzione prolungata a un thread in background consente al thread dell'interfaccia utente di rimanere reattivo durante l'esecuzione dell'operazione.

.NET Framework offre diversi modelli di progettazione asincrona standard che gli sviluppatori possono usare per sfruttare i thread in background e liberare l'interfaccia utente o i thread ad alta priorità per completare altre operazioni. ADO.NET supporta questi stessi modelli di progettazione nella relativa SqlCommand classe. In particolare, i BeginExecuteNonQuerymetodi , BeginExecuteReadere BeginExecuteXmlReader , associati ai EndExecuteNonQuerymetodi , EndExecuteReadere EndExecuteXmlReader , forniscono il supporto asincrono.

Annotazioni

La programmazione asincrona è una funzionalità di base di .NET Framework e ADO.NET sfrutta appieno i modelli di progettazione standard. Per ulteriori informazioni sulle diverse tecniche asincrone disponibili per gli sviluppatori, consultare Chiamare metodi sincroni in modo asincrono.

Anche se l'uso di tecniche asincrone con funzionalità di ADO.NET non aggiunge particolari considerazioni, è probabile che più sviluppatori usino funzionalità asincrone in ADO.NET rispetto ad altre aree di .NET Framework. È importante essere consapevoli dei vantaggi e delle insidie della creazione di applicazioni multithreading. Gli esempi che seguono in questa sezione indicano diversi problemi importanti che gli sviluppatori dovranno tenere in considerazione durante la creazione di applicazioni che incorporano funzionalità multithreading.

In questa sezione

Applicazioni Windows che usano callback
Fornisce 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 utilizzando Wait Handles
Viene fornito un esempio che illustra come eseguire più comandi simultanei da una pagina ASP.NET, usando handle di attesa per gestire l'operazione al completamento di tutti i comandi.

Polling nelle applicazioni console
Fornisce un esempio che illustra l'uso del polling per attendere il completamento di un'esecuzione asincrona dei comandi da un'applicazione console. Questa tecnica è valida anche in una libreria di classi o in un'altra applicazione senza un'interfaccia utente.

Vedere anche