Asynchrone Operationen (ADO.NET)

Aktualisiert: November 2007

Einige Datenbankoperationen wie das Ausführen von Befehlen können einige Zeit bis zur Beendigung in Anspruch nehmen. In diesem Fall müssen Singlethread-Anwendungen andere Operationen blockieren und auf die Beendigung des Befehls warten, bevor sie mit eigenen Operationen fortfahren können. Es ist jedoch auch möglich, dass der Vordergrundthread während der Operation aktiv bleibt, wenn der länger dauernde Vorgang einem Hintergrundthread zugewiesen werden kann. In einer Windows-Anwendung bleibt beispielsweise der Benutzeroberflächenthread beim Ausführen des Vorgangs reaktionsfähig, wenn die länger dauernde Operation an einen Hintergrundthread delegiert wird.

.NET Framework stellt mehrere asynchrone Standardentwurfsmuster bereit, mit denen Entwickler die Vorteile der Hintergrundthreads nutzen können und die dem Benutzeroberflächenthread oder Threads mit hoher Priorität die Möglichkeit geben, andere Operationen zu beenden. ADO.NET unterstützt dieselben Entwurfsmuster in seiner SqlCommand-Klasse. Insbesondere die Methoden BeginExecuteNonQuery, BeginExecuteReader und BeginExecuteXmlReader stellen zusammen mit den Methoden EndExecuteNonQuery, EndExecuteReader und EndExecuteXmlReader die asynchrone Unterstützung bereit.

Diese Methoden werden nur unter Microsoft Windows XP und Windows 2000 unterstützt, nicht unter Windows 98 oder Windows ME.

Hinweis:

Asynchrone Programmierung ist ein grundlegendes Feature von .NET Framework, und ADO.NET nutzt die Möglichkeiten der Standardentwurfsmuster vollständig. Weitere Informationen zu den verschiedenen asynchronen Techniken, die den Entwicklern zur Verfügung stehen, finden Sie unter Asynchrones Aufrufen von synchronen Methoden.

Auch wenn durch die Verwendung asynchroner Techniken mit ADO.NET-Features keine neuen Aspekte hinzugefügt werden, ist es wahrscheinlicher, dass Entwickler asynchrone Features in ADO.NET verwenden als in anderen Bereichen von .NET Framework. Es ist wichtig, mit den Vorteilen und potenziellen Fehlerquellen beim Erstellen von Multithread-Anwendungen vertraut zu sein. Die in diesem Abschnitt folgenden Beispiele verdeutlichen mehrere wichtige Aspekte, die Entwickler beim Erstellen von Anwendungen mit Multithreadfunktionalität berücksichtigen sollten.

In diesem Abschnitt

  • Windows-Anwendungen, die Rückrufe verwenden (ADO.NET)
    Enthält ein Beispiel, das die sichere Ausführung eines asynchronen Befehls veranschaulicht. Dabei wird die Interaktion mit einem Formular und seinem Inhalt von einem anderen Thread aus ordnungsgemäß behandelt.

  • ASP.NET-Anwendungen mit 'Wait'-Handles (ADO.NET)
    Enthält ein Beispiel, das die gleichzeitige Ausführung mehrerer Befehle von einer ASP.NET-Seite aus veranschaulicht. Dabei werden Wait-Handles zum Verwalten der Operation bei Beendigung aller Befehle verwendet.

  • Verwenden von Abrufen in Konsolenanwendungen (ADO.NET)
    Enthält ein Beispiel, das die Verwendung von Abfragen veranschaulicht, mit denen von einer Konsolenanwendung auf die Beendigung der Ausführung eines asynchronen Befehls gewartet wird. Diese Technik kann auch in einer Klassenbibliothek oder anderen Anwendungen ohne Benutzeroberfläche verwendet werden.

Siehe auch

Konzepte

Asynchrones Aufrufen von synchronen Methoden

Weitere Ressourcen

SQL Server und ADO.NET