In diesem Artikel wird die asynchrone Programmierung in C#untersucht und sich auf die Schlüsselwörter async
und await
konzentriert. Diese Schlüsselwörter vereinfachen den asynchronen Code erheblich, was ihn lesbar und wartbarer macht. Der Artikel kontrastiert synchron, gleichzeitig, parallel und asynchron, wodurch die Unterscheidungen klären.
Schlüsselkonzepte:
- asynchron/wartet die vereinfachende
async
aufgabenbasiertes asynchrones Muster (TAP):await
Tippen Sie mithilfe und - das empfohlene Muster für asynchrone Operationen in .NET, wobei die Grundlage für und .
Task
Task<t></t>
Leistung und Reaktionsfähigkeit:async
asynchrone Operationen verbessern die UI -Reaktionsfähigkeit und können die Leistung steigern, indem sie den Thread -Pool effizient verwenden und das Blockieren von Faden während der E/A -Operationen verhindern.await
- Deadlock -Vermeidung: unsachgemäße Verwendung von und , wie das Mischen von synchronem und asynchronem Code, kann zu Deadlocks führen. Techniken wie
- und das Vermeiden von oder sind entscheidend, um diese Probleme zu verhindern.
async
await
ConfigureAwait(false)
Ausnahmebehandlung:.Result
.Wait()
vereinfacht die Fehlerbehandlung durch direkte Ausnahme von Ausnahmen, im Gegensatz zu oder - , die Ausnahmen in . einwickeln.
await
.Result
.Wait()
Refactoring Legacy Code:AggregateException
migriert von synchron zu asynchronem Code beinhaltet die Änderung von Methodensignaturen, um oder - zu zurückzugeben, Blockierungsanrufe durch zu ersetzen und eine geeignete Ausnahmebehandlung zu implementieren.
Task
Task<t></t>
await
gleichzeitlich gegenüber parallel vs. asynchron:
Der Artikel unterscheidet diese drei Konzepte, die oft synonym verwendet werden, aber mit unterschiedlichen Bedeutungen:
Synchron:
Operationen führen nacheinander aus, blockieren das Programm bis zum Abschluss.- gleichzeitlich: Mehrere Aufgaben werden scheinbar gleichzeitig ausgeführt, oft mit separaten Threads, aber nicht unbedingt gleichzeitig.
- parallel: Mehrere Kopien derselben Aufgabe werden gleichzeitig ausgeführt, wobei mehrere Kerne nutzen.
- asynchron: Eine Aufgabe blockiert den Ausführungs -Thread nicht, während er auf die Fertigstellung wartet. Der Thread wird an den Thread -Pool freigelassen.
- Asynchrone Programmiermuster:
Der Artikel beschreibt drei asynchrone Programmiermuster in .NET: Der Artikel erläutert die Rollen von Aktualisieren vorhandener Code: Der Artikel zeigt den Synchroncode Refactoring mit asynchronem Code mit
Ausnahmebehandlung im asynchronen Code:
Weitere Lesen:
asynchron/wartet FAQ:
BeginOperationName
und EndOperationName
Methoden. OperationNameAsync
-Methoden und OperationNameCompleted
Ereignissen. OperationNameAsync
Methoden, die Task
oder Task<t></t>
. Task
und Task<t></t>
: Task
und Task<t></t>
sind von grundlegender Bedeutung, um asynchrone Operationen darzustellen und Methoden zur Verwaltung von Fortschritten, Warten auf die Fertigstellung und die Abwicklung der Stornierung zu bieten. async
und await
: async
und await
:
async
: markiert eine Methode als asynchron, wodurch die Verwendung von await
await
: asynchron wartet auf ein Task
oder Task<t></t>
, ohne den Thread zu blockieren. async
und await
, wobei die Bedeutung der Aktualisierungsmethodensignaturen hervorgehoben wird und Blockierungsanrufe durch await
. ConfigureAwait(false)
Deadlocks und : async
Der Artikel erörtert potenzielle Sackgänge bei der Verwendung von await
und ConfigureAwait(false)
und führt await
Der Artikel betont das verbesserte Ausnahmebehandlung mit AggregateException
, der reale Ausnahmen direkt wirft, im Gegensatz zu
async
Ein prägnanter FAQ -Abschnitt befasst sich mit häufigen Fragen zu await
und
Das obige ist der detaillierte Inhalt vonAsynchrone Programmierung mit Async/Auseait in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Bleiben Sie über die neuesten technischen Trends mit diesen Top -Entwickler -Newsletters informiert! Diese kuratierte Liste bietet für jeden etwas, von KI -Enthusiasten bis hin zu erfahrenen Backend- und Frontend -Entwicklern. Wählen Sie Ihre Favoriten und sparen Sie Zeit, um nach REL zu suchen

Dieses Tutorial führt Sie durch das Erstellen einer serverlosen Bildverarbeitungspipeline mit AWS -Diensten. Wir werden ein Next.JS -Frontend erstellen, der in einem ECS -Fargate -Cluster eingesetzt wird und mit einem API -Gateway, Lambda -Funktionen, S3 -Eimer und DynamoDB interagiert. Th

Dieses Pilotprogramm, eine Zusammenarbeit zwischen CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal und betätigten, rationalisiert ARM64 CI/CD für CNCF -Github -Projekte. Die Initiative befasst sich mit Sicherheitsbedenken und Leistung

Dieser GO-basierte Netzwerkanfälligkeitsscanner identifiziert potenzielle Sicherheitsschwächen effizient. Es nutzt die Parallelitätsfunktionen von GO und beinhaltet die Erkennung und Anfälligkeitserkennung. Erforschen wir seine Fähigkeiten und ethisch


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!
