Operacje asynchroniczne

Niektóre operacje bazy danych, takie jak wykonania poleceń, mogą zająć dużo czasu. W takim przypadku aplikacje jednowątkowe muszą blokować inne operacje i czekać na zakończenie polecenia, zanim będą mogły kontynuować własne operacje. Natomiast możliwość przypisania długotrwałej operacji do wątku w tle umożliwia działanie wątku pierwszego planu w trakcie całej operacji. Na przykład w aplikacji systemu Windows delegowanie długotrwałej operacji do wątku w tle umożliwia wątkowi interfejsu użytkownika zachowanie odpowiedzi podczas wykonywania operacji.

Program .NET Framework udostępnia kilka standardowych wzorców projektowych asynchronicznych, których deweloperzy mogą używać do korzystania z wątków w tle i zwalniania interfejsu użytkownika lub wątków o wysokim priorytcie w celu ukończenia innych operacji. ADO.NET obsługuje te same wzorce projektowe w swojej SqlCommand klasie. W szczególności metody BeginExecuteNonQuery, BeginExecuteReaderi BeginExecuteXmlReader , sparowane z metodami EndExecuteNonQuery, EndExecuteReaderi EndExecuteXmlReader zapewniają obsługę asynchroniczną.

Uwaga

Programowanie asynchroniczne to podstawowa funkcja programu .NET Framework, a ADO.NET w pełni wykorzystuje standardowe wzorce projektowe. Aby uzyskać więcej informacji na temat różnych technik asynchronicznych dostępnych dla deweloperów, zobacz Wywoływanie metod synchronicznych asynchronicznie.

Chociaż używanie technik asynchronicznych z funkcjami ADO.NET nie dodaje żadnych specjalnych zagadnień, prawdopodobnie więcej deweloperów będzie używać funkcji asynchronicznych w ADO.NET niż w innych obszarach programu .NET Framework. Należy pamiętać o korzyściach i pułapkach związanych z tworzeniem aplikacji wielowątkowych. Przykłady opisane w tej sekcji wskazują kilka ważnych problemów, które deweloperzy będą musieli wziąć pod uwagę podczas kompilowania aplikacji zawierających funkcje wielowątkowane.

W tej sekcji

Aplikacje systemu Windows z wykorzystaniem wywołania zwrotnego
Zawiera przykład pokazujący sposób bezpiecznego wykonywania asynchronicznego polecenia, poprawnej obsługi interakcji z formularzem i jego zawartością z oddzielnego wątku.

Aplikacje ASP.NET z wykorzystaniem uchwytów oczekiwania
Zawiera przykład pokazujący sposób wykonywania wielu współbieżnych poleceń ze strony ASP.NET przy użyciu uchwytów oczekiwania w celu zarządzania operacją po zakończeniu wszystkich poleceń.

Sondowanie aplikacji konsoli
Zawiera przykład pokazujący użycie sondowania w celu oczekiwania na ukończenie asynchronicznego wykonywania polecenia z poziomu aplikacji konsolowej. Ta technika jest również prawidłowa w bibliotece klas lub innej aplikacji bez interfejsu użytkownika.

Zobacz też