Delen via


Asynchrone bewerkingen

Het kan veel tijd duren voordat sommige databasebewerkingen, zoals opdrachtuitvoeringen, zijn voltooid. In dat geval moeten toepassingen met één thread andere bewerkingen blokkeren en wachten totdat de opdracht is voltooid voordat ze hun eigen bewerkingen kunnen voortzetten. Als u daarentegen de langlopende bewerking kunt toewijzen aan een achtergrondthread, kan de voorgrondthread actief blijven gedurende de hele bewerking. In een Windows-toepassing kan bijvoorbeeld het delegeren van de langlopende bewerking naar een achtergrondthread de gebruikersinterfacethread responsief blijven terwijl de bewerking wordt uitgevoerd.

Het .NET Framework biedt verschillende standaard asynchrone ontwerppatronen die ontwikkelaars kunnen gebruiken om te profiteren van achtergrondthreads en de gebruikersinterface of threads met hoge prioriteit vrij te maken om andere bewerkingen te voltooien. ADO.NET ondersteunt dezelfde ontwerppatronen in de SqlCommand klasse. Met name de BeginExecuteNonQuery, BeginExecuteReaderen BeginExecuteXmlReader methoden, die zijn gekoppeld aan de EndExecuteNonQuery, EndExecuteReaderen EndExecuteXmlReader methoden, bieden de asynchrone ondersteuning.

Notitie

Asynchrone programmering is een kernfunctie van .NET Framework en ADO.NET optimaal gebruik maakt van de standaardontwerppatronen. Zie Synchrone methoden asynchroon aanroepen voor meer informatie over de verschillende asynchrone technieken die beschikbaar zijn voor ontwikkelaars.

Hoewel het gebruik van asynchrone technieken met ADO.NET functies geen speciale overwegingen toevoegt, is het waarschijnlijk dat meer ontwikkelaars asynchrone functies gebruiken in ADO.NET dan op andere gebieden van .NET Framework. Het is belangrijk om rekening te houden met de voordelen en valkuilen van het maken van multithreaded toepassingen. In de volgende voorbeelden in deze sectie worden verschillende belangrijke problemen beschreven waarmee ontwikkelaars rekening moeten houden bij het bouwen van toepassingen die multithreaded-functionaliteit bevatten.

In dit gedeelte

Windows-toepassingen die callbacks gebruiken
Biedt een voorbeeld waarin wordt gedemonstreerd hoe u een asynchrone opdracht veilig uitvoert, waarbij de interactie met een formulier en de inhoud ervan vanuit een afzonderlijke thread correct wordt verwerkt.

ASP.NET toepassingen met behulp van wachtgrepen
Bevat een voorbeeld waarin wordt gedemonstreerd hoe u meerdere gelijktijdige opdrachten uitvoert vanaf een ASP.NET pagina, met behulp van wachtgrepen om de bewerking bij voltooiing van alle opdrachten te beheren.

Polling in consoletoepassingen
Hier ziet u een voorbeeld van het gebruik van polling om te wachten op de voltooiing van een asynchrone opdrachtuitvoering vanuit een consoletoepassing. Deze techniek is ook geldig in een klassebibliotheek of andere toepassing zonder een gebruikersinterface.

Zie ook