Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Einige Datenbankvorgänge, z. B. Befehlsausführungen, können beträchtliche Zeit in Anspruch nehmen. In derartigen Fällen müssen Singlethread-Anwendungen andere Vorgänge blockieren und warten, bis der Befehl abgeschlossen ist, ehe ihre eigenen Vorgänge fortgesetzt werden können. Im Gegensatz dazu kann der Vordergrundthread während des gesamten Vorgangs aktiv bleiben, wenn der Vorgang mit langer Ausführungszeit einem Hintergrundthread zugewiesen werden kann. In einer Windows-Anwendung beispielsweise ermöglicht das Delegieren des Vorgangs mit langer Ausführungszeit an einen Hintergrundthread, dass der Benutzeroberflächenthread während der Ausführung des Vorgangs reaktionsfähig bleibt.
.NET Framework stellt mehrere standardbasierte asynchrone Entwurfsmuster bereit, mit denen Entwickler Hintergrundthreads nutzen und die Benutzeroberfläche oder Threads mit hoher Priorität freigeben können, um andere Vorgänge auszuführen. ADO.NET unterstützt dieselben Entwurfsmuster in der SqlCommand Klasse. Insbesondere die Methoden BeginExecuteNonQuery, BeginExecuteReader und BeginExecuteXmlReader gepaart mit den Methoden EndExecuteNonQuery, EndExecuteReader und EndExecuteXmlReader bieten die asynchrone Unterstützung.
Hinweis
Die asynchrone Programmierung ist ein Kernmerkmal des .NET Framework, das ADO.NET voll ausnutzt, um die Standardentwurfsmuster zu nutzen. Weitere Informationen zu den verschiedenen asynchronen Techniken, die Entwicklern zur Verfügung stehen, finden Sie unter Asynchrones Aufrufen von synchronen Methoden.
Obwohl die Verwendung asynchroner Techniken mit ADO.NET Features keine besonderen Überlegungen enthält, ist es wahrscheinlich, dass mehr Entwickler asynchrone Features in ADO.NET als in anderen Bereichen von .NET Framework verwenden. Es ist wichtig, die Vorteile und Fallstricke beim Erstellen von Multithread-Anwendungen zu beachten. Die folgenden Beispiele in diesem Abschnitt weisen auf mehrere wichtige Punkte hin, die Entwickler bei der Erstellung von Anwendungen mit Multithread-Funktionalität berücksichtigen müssen.
In diesem Abschnitt
Windows-Anwendungen mit Callbacks
Bietet ein Beispiel, das zeigt, wie ein asynchroner Befehl sicher ausgeführt werden kann, wobei die Interaktion mit einem Formular und dessen Inhalt in einem separaten Thread ordnungsgemäß gehandhabt wird.
ASP.NET Anwendungen mit Wait Handles
Enthält ein Beispiel, das veranschaulicht, wie mehrere gleichzeitige Befehle auf einer ASP.NET-Seite ausgeführt werden können, wobei Wait-Handles verwendet werden, um den Vorgang nach Ausführung aller Befehle zu verwalten.
Abfragen in Konsolenanwendungen
Enthält ein Beispiel, das die Verwendung von Abrufen demonstriert, um in einer Konsolenanwendung auf den Abschluss der Ausführung eines asynchronen Befehls zu warten. Diese Technik eignet sich auch in einer Klassenbibliothek oder einer anderen Anwendung ohne Benutzerschnittstelle.