www.rolandk.de
- Aktuelle Themen zu .Net -
Achtung: Hier handelt es sich um meine alte Seite.
Die aktuelle ist unter folgendem Link erreichbar: www.rolandk.de/wp/
Home




















































Der Beitrag sollte gelöscht oder intens
Dienstag, den 27. November 2012 um 10:25 Uhr
Der Beitrag sollte gelöscht oder intensiv überarbeitet werden, weil er massiv falsche Vorstellungen von async/await verbreitet. Das ist aber leider sehr verbreitet im Web, weil sich kaum jemand die Mühe macht sich intensiv einzulesen. "Dieser Task würde ohne zusätzliche Logik sofort im Hintergrund ausgeführt werden." "Der Hintergrund ist die Tatsache, dass jede Methode, die per async markiert ist, im Hintergrund sofort als Task ausgeführt wird." "Das async deutet gleichzeitig darauf hin, dass eine Methode im Hintergrund läuft, und zwar immer und sofort." Verzeihung, aber diese Aussagen sind schlicht und einfach falsch. Async sorgt nicht auf magische Art und Weise dafür, dass eine derart markierte Methode sofort in einem Task ausgeführt wird. Am Ende der Aufrufkette muss es einen expliziten Start eines Tasks geben, und erst ab dieser Stelle (die evtl. sehr tief in einern async-Aufrufhierarchie ist) kann der Nachfolgende Code als Continuation behandelt und zurück zum Aufruf gesprungen werden. Erst ab dem Task-Start setzt die Asynchronität ein, nicht bei Aufruf einer async-Methode. Das merkt man übrigens auch sehr schön an manchen async Framework-Methoden (der WebClient-Klasse z.B.), die eben DOCH merklich blockieren, bis der Task intern gestartet wird. Auch das Fazit und die Betonung von Mehrkern-Programmierung und Threading ist Unsinn. Asynchrone Programmierung ist nicht das gleiche wie Threading. Buchtipp gegen das Halbwissen: "Async in C# 5.0"
 
Dieser Kommentar ist von "Parallelisierung von Aufgaben in C# 4.5"