Freigeben über


Asynchrone Vorgänge

Herunterladen von ADO.NET

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 bietet mehrere asynchrone Standardentwurfsmuster, die Entwickler verwenden können, um die Vorteile von Hintergrundthreads zu nutzen und die Benutzeroberfläche oder Threads mit hoher Priorität freizugeben, um andere Vorgänge in seiner SqlCommand-Klasse abzuschließen. 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 von .NET. 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 erfordert, ist es wichtig, sich der Vorteile und Tücken der Erstellung von Anwendungen mit mehreren Threads bewusst zu sein. 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

Verwenden von Rückrufen in Windows-Anwendungen
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.

Verwenden von Wait-Handles in ASP.NET-Anwendungen
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.

Abrufen 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.

Nächste Schritte