Operazioni asincrone (ADO.NET)
Il completamento di alcune operazioni di database, ad esempio l'esecuzione di comandi, può richiedere parecchio tempo. In questi casi, le applicazioni a thread singolo devono bloccare altre operazioni e attendere il comando per il completamento prima di continuare le rispettive operazioni. Al contrario, la possibilità di assegnare l'operazione a esecuzione prolungata a un thread in background consente al thread in primo piano di restare attivo per l'intera durata dell'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 attivo mentre l'operazione è in esecuzione.
.NET Framework fornisce diversi modelli di progettazione asincroni standard che gli sviluppatori possono utilizzare per sfruttare i thread in background e liberare i thread dell'interfaccia utente o i thread ad alta priorità e utilizzarli 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, forniscono il supporto asincrono.
Questi metodi sono supportati soltanto in Microsoft Windows XP e Windows 2000, non sono supportati in Windows 98 o Windows ME.
Nota |
---|
La programmazione asincrona è una funzionalità centrale di .NET Framework e ADO.NET sfrutta pienamente i modelli di progettazione standard.Per ulteriori informazioni sulle diverse tecniche asincrone disponibili per gli sviluppatori, vedere Chiamata asincrona dei metodi sincroni. |
Benché l'utilizzo 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. Negli esempi seguenti vengono illustrate diverse problematiche importanti di cui gli sviluppatori dovranno tenere conto quando compilano applicazioni che incorporano funzionalità multithreading.
In questa sezione
Applicazioni Windows che utilizzano callback (ADO.NET)
Viene fornito un esempio che illustra come eseguire un comando asincrono in modo sicuro, gestendo in modo corretto l'interazione con un form e il relativo contenuto in un thread separato.Applicazioni ASP.NET che utilizzano handle di attesa (ADO.NET)
Viene fornito un esempio che illustra come eseguire più comandi simultanei da una pagina ASP.NET, utilizzando handle di attesa per gestire l'operazione al completamento di tutti i comandi.Utilizzo del polling nelle applicazioni console (ADO.NET)
Viene fornito un esempio che illustra l'utilizzo 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 altre applicazioni senza interfaccia utente.
Vedere anche
Concetti
Chiamata asincrona dei metodi sincroni