Ganz sicher haben Sie die folgenden Begriffe schon gehört: Threads, Tasks (Task.Factory vs. Task.Run()), TPL, Async / Await, Thread-Pool, Scheduler, usw. Ganz sicher wissen Sie auch, worin sich diese Begriffe unterscheiden. Natürlich wissen Sie, dass es Unterschiede zwischen Foreground- und Background-Threads gibt. Sie wissen wie async / await funktioniert. Sie wissen was async / await für ihre Software-Architektur bedeutet und was IO-bound bzw. CPU-bound Operations sind und warum bei einem Task eben nicht immer ein Thread auf der CPU ausgeführt wird. Sie verstehen ganz genau, wann es bei async / await zu Deadlocks kommen kann, wie man async / await innerhalb von Bibliotheken implementiert und selbstverständlich kennen Sie den Einsatz von ConfigureAwait(…) aus dem Schlaf. Richtig verstanden haben Sie auch die Probleme, die im Zusammenhang zwischen Events und der nebenläufigen Programmierung auftreten können... …oder etwa nicht? Ein detailliertes Verständnis der oben genannten Thematiken wird für die moderne Softwareentwicklung immer wichtiger. Neue Bibliotheken wie wir sie im Azure-Umfeld vorfinden arbeiten nur noch asynchron.
In diesem Vortrag werde ich alle oben genannten Themen ansprechen und vor allem: verständlich erklären. Wir werden die asynchrone Programmierung endlich vollständig verstehen. Vorbeischauen und anschnallen.