Asynchroner Methodenaufruf

Autor: Lewis Jackson
Erstelldatum: 8 Kann 2021
Aktualisierungsdatum: 25 Juni 2024
Anonim
SE1 Interaktionsmodellierung
Video: SE1 Interaktionsmodellierung

Inhalt

Definition - Was bedeutet asynchroner Methodenaufruf?

Ein asynchroner Methodenaufruf ist eine in der .NET-Programmierung verwendete Methode, die unmittelbar vor Abschluss der Verarbeitung und ohne Blockierung des aufrufenden Threads an den Aufrufer zurückgegeben wird.

Wenn eine Anwendung eine asynchrone Methode aufruft, kann sie gleichzeitig mit der Ausführung der asynchronen Methode ausgeführt werden, die ihre Aufgabe ausführt. Eine asynchrone Methode wird in einem vom Hauptanwendungsthread getrennten Thread ausgeführt. Die Verarbeitungsergebnisse werden durch einen anderen Aufruf in einem anderen Thread abgerufen.

Asynchrone Methoden helfen bei der Optimierung der Ressourcenausführung, was zu einer skalierbaren Anwendung führt. Diese werden verwendet, um zeitaufwändige Aufgaben auszuführen, z. B. das Öffnen großer Dateien, das Herstellen einer Verbindung zu Remotecomputern, das Abfragen einer Datenbank, das Aufrufen von Webdiensten und ASP.NET-Webformularen.

Asynchroner Methodenaufruf kann auch als asynchroner Methodenaufruf (AMI) bezeichnet werden.


Eine Einführung in Microsoft Azure und die Microsoft Cloud | In diesem Handbuch erfahren Sie, worum es beim Cloud-Computing geht und wie Microsoft Azure Sie bei der Migration und Ausführung Ihres Unternehmens aus der Cloud unterstützen kann.

Techopedia erklärt den asynchronen Methodenaufruf

Die asynchrone Methode unterscheidet sich von der synchronen Methode in der Art und Weise, in der sie vom Aufruf zurückgegeben wird. Während ein asynchroner Methodenaufruf sofort zurückgegeben wird und das aufrufende Programm andere Operationen ausführen kann, warten synchrone Methodenaufrufe auf den Abschluss der Methode, bevor der Programmablauf fortgesetzt wird.

Das .NET Framework verfügt über eine integrierte asynchrone Infrastruktur, sodass jede Methode ohne Änderung des Codes asynchron aufgerufen werden kann.

.NET Framework bietet zwei Entwurfsmuster zum Implementieren der asynchronen Methode, die asynchrone Delegaten (IASyncResult-Objekte) und Ereignisse verwenden. Das Muster für asynchrone Delegaten ist komplexer und bietet Flexibilität, wodurch es sich gut für verschiedene komplexe Programmiermodelle eignet. Das ereignisbasierte Modell ist einfach und sollte in den meisten Fällen verwendet werden.

Im asynchronen Delegatenmuster verwendet ein Delegatenobjekt zwei Methoden: BeginInvoke und EndInvoke. BeginInvoke verfügt über eine Liste von Parametern, die der umgebrochenen Funktion ähnlich sind, sowie über zwei zusätzliche optionale Parameter. es gibt das IAsyncResult-Objekt zurück. EndInvoke gibt zwei Parameter (out und ref type) zusammen mit dem IAsyncResult-Objekt zurück. BeginInvoke wird zum Initiieren des asynchronen Aufrufs verwendet, während EndInvoke zum Abrufen der Ergebnisse des asynchronen Aufrufs verwendet wird.

Ereignisbasierte asynchrone Muster verwenden eine Klasse mit einer oder mehreren Methoden namens MethodNameAsync, die über entsprechende synchrone Versionen verfügen, die für den aktuellen Thread ausgeführt werden. Ereignisbasierte Muster können auch ein MethodNameCompleted-Ereignis und eine MethodNameAsyncCancel-Methode aufweisen. Dieses Muster ermöglicht der Klasse die Kommunikation mit ausstehenden asynchronen Vorgängen unter Verwendung des Delegate-Ereignismodells.

Im Folgenden finden Sie einige Tipps zu asynchronen Methoden:


  • Bei hoher Parallelität müssen asynchrone Methoden vermieden werden
  • Beim Übergeben von Referenzen auf gemeinsam genutzte Objekte ist Vorsicht geboten
  • EndXXX (wird am Ende einer asynchronen Operation aufgerufen) muss aufgerufen werden, um Ausnahmen erneut auszulösen und Fehler zu vermeiden
  • Durch Abfangen und Speichern aller Ausnahmeobjekte in einer asynchronen Methode kann sie während des EndXXX-Aufrufs erneut ausgelöst werden
  • Steuerelemente in der Benutzeroberfläche, die lang andauernde asynchrone Vorgänge initiieren, müssen deaktiviert werden, wenn sie nur zu diesem Zweck benötigt werden
  • Asynchrone Methoden müssen mit einem Verständnis für Multithreading implementiert werden und sich als effizienter als die Verwendung synchroner Methoden herausstellen.