Asynchrone bewerkingen

Het kan veel tijd duren voordat databasebewerkingen zijn voltooid. Als u een gebruikersinterface responsief wilt houden of te voorkomen dat een aanvraagthread wordt geblokkeerd, gebruikt u asynchrone databasemethoden in plaats van synchroon te wachten totdat een opdracht is voltooid.

Installeer de Microsoft. Data.SqlClient NuGet-pakket voor SQL-clientcode. Voor nieuwe toepassingen, gebruik OpenAsync en de ExecuteNonQueryAsync, ExecuteReaderAsyncen ExecuteXmlReaderAsync methoden met await. Deze methoden voeren asynchrone invoer/uitvoer (I/O) uit zonder dat u een achtergrondthread hoeft te maken.

Microsoft. Data.SqlClient ondersteunt ook de callback-, wait-handle- en pollingpatronen die in deze sectie worden beschreven. De BeginExecuteNonQuery, BeginExecuteReader, en BeginExecuteXmlReader methoden gaan samen met EndExecuteNonQuery, EndExecuteReader, en EndExecuteXmlReader. Voeg Asynchronous Processing=true niet toe aan de verbindingsreeks; Microsoft.Data.SqlClient biedt geen ondersteuning voor dat trefwoord.

Opmerking

Gebruik voor nieuwe code het asynchrone patroon op basis van taken. In de voorbeelden in deze sectie ziet u het ondersteunde Begin/End patroon voor toepassingen die callbacks, wait-handles of polling nodig hebben.

Houd elke verbinding en opdracht actief totdat de bewerking is voltooid. Let op uitzonderingen wanneer u de overeenkomende End methode aanroept of wacht op de taak. Werk in een bureaubladtoepassing besturingselementen alleen bij vanuit de thread van de gebruikersinterface.

In deze sectie

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