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.