Im Gegensatz zu gemeinsamen Missverständnissen erzeugt Async/Auseait keine neuen Threads. Stattdessen wird kooperatives Multitasking verwendet, um die Reaktionsfähigkeit der Anwendungen erheblich zu verbessern.
wie asynchron/wartet Works
Der Compiler unterteilt die Methoden geschickt unter Verwendung von Async/wartet in zwei Abschnitte:
warte
Schlüsselwort, einschließlich der Initiierung asynchroner Operationen. uten
keyword. Ausführungssequenz:
erwartet
Anweisung. Die asynchrone Operation (z. B. GetomethingAsync ()
) heißt. Diese Operation gibt ein ausstehendes Ergebnis zurück (wie ein Task
). synchronizationcontext
wird informiert, um die asynchrone Operation zu vervollständigen. Control kehrt zur Nachrichtenschleife zurück, sodass sie andere Aufgaben bearbeiten können. synchronizationcontext
eine Benachrichtigung. Ausführung Wiederaufnahme:
Die synchronizationcontext
fügt der Meldungsschlaufe -Warteschlange eine Nachricht hinzu, die die Ausführung von Teil 2 auslöst. Die Nachrichtschleife verarbeitet dies, die Methode nach dem Punkt nach . . .
Teil 2 Ausführung:
Der verbleibende Code wird ausgeführt, die Ergebnisse aus der asynchronen Operation verarbeiten.verbesserte Reaktionsfähigkeit
Während die asynchrone Operation anhängig ist, bleibt die Nachrichtenschleife frei, um Benutzereingaben und UI -Updates zu verarbeiten, wodurch die Anwendung reaktionsschnell bleibt. Nach Abschluss aktualisiert Teil 2 den Anwendungsstatus.
synchronizationcontext , nicht Thread -Erstellung.
Effektiver Einsatz von Async/wartet erheblich an die Reaktionsfähigkeit und die Benutzererfahrung der Anwendungen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3