Softwarekonferenz für parallele, nebenläufige
und asynchrone Programmierung und HPC
Heidelberg, Print Media Academy, 6.-8. März 2018

// C# Async/Await Deep Dive

Asynchrone Programmierung ist ein wichtiges Werkzeug, um die Skalierbarkeit und Responsiveness von Applikationen zu gewährleisten. C# und andere Programmiersprachen wie Python oder TypeScript haben dafür das Schlüsselwort await eingeführt, das es erlaubt, asynchronen Code zu schreiben, der so einfach zu lesen ist wie synchroner Code.

Wie async/await tatsächlich funktioniert, ist jedoch nicht allgemein bekannt. Inkorrekte Annahmen über die Funktionsweise können aber zu schwerwiegenden Fehlern führen.

In der ersten Hälfte des Vortrags wird hinter die Kulissen geschaut und erklärt, was der C#-Compiler machen muss, um async/await zu ermöglichen. Dazu werden die Code-Transformationen, die der Compiler durchführt, von Hand nachimplementiert. Am Ende haben wir ein funktionsfähiges Programm, anhand dessen jeder Schritt einer async/await-Operation nachvollzogen werden kann.

Die zweite Hälfte des Vortrags wird sich mit Anwendungsbeispielen und Fallstricken aus der Praxis beschäftigen.

Vorkenntnisse
Besucher sollten das grundlegende Konzept von async/await verstanden und idealerweise schon damit gearbeitet haben. Grundkenntnisse in C# und der Task Parallel Library sind hilfreich, aber nicht zwingend notwendig.

Lernziele
Nach dem Vortrag sollten Teilnehmer async/await auf einem tiefen Level verstehen. Daneben werden auch Extension Points sowie Fallstricke und Best Practices gezeigt.


// Thomas Schubart Thomas Schubart

ist Software Engineer bei der Method Park Engineering GmbH. Er hat langjährige Erfahrung in der Verarbeitung großer Datenmengen in der Medizintechnik. Zuvor lag sein Schwerpunkt auf Performance- und Lasttests für verteilte Systeme. Neben der parallelen Programmierung interessiert er sich insbesondere für maschinelles Lernen.