Kapitel 2. Async-Grundlagen
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Dieses Kapitel führt dich in die Grundlagen der Verwendung von async
und await
für asynchrone Operationen ein. Wir befassen uns hier nur mit natürlich asynchronen Operationen, d.h. mit Operationen wie HTTP-Anfragen, Datenbankbefehlen und Webservice-Aufrufen.
Wenn du eine rechenintensive Operation hast, die du so behandeln willst, als wäre sie asynchron (z. B. damit sie den UI-Thread nicht blockiert), dann lies Kapitel 4 und Rezept 8.4. Außerdem befasst sich dieses Kapitel nur mit Vorgängen, die einmal gestartet und einmal abgeschlossen werden; wenn du mit Ereignisströmen umgehen musst, dann lies Kapitel 3 und6.
2.1 Pausieren für eine bestimmte Zeitspanne
Problem
Du musst (asynchron) eine Zeit lang warten. Das ist ein häufiges Szenario, wenn du Unit-Tests durchführst oder Wiederholungsverzögerungen implementierst. Es kommt auch vor, wenn du einfache Timeouts programmierst.
Lösung
Der Typ Task
hat eine statische Methode Delay
, die eine Aufgabe zurückgibt, die nach der angegebenen Zeit abgeschlossen ist.
Der folgende Beispielcode definiert eine Aufgabe, die asynchron abgeschlossen wird. Wenn du einen asynchronen Vorgang vortäuschst, ist es wichtig, den synchronen Erfolg und den asynchronen Erfolg sowie den asynchronen Misserfolg zu testen. Das folgende Beispiel gibt eine Aufgabe zurück, die für den asynchronen Erfolgsfall ...
Get Concurrency in C# Cookbook, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.