Christoph Amrein is a senior software engineer and researcher in the .NET Technology Lab and Concurrency Lab at the HSR Hochschule für Technik Rapperswil. His specific interests are in asynchronous and parallel programming, backed by a strong experience in modern software engineering. As part of the HSR .NET Technology Lab, he consults and supports companies in modern .NET software engineering and applied research projects. He is also engaged in teaching programming classes at HSR computer science program. Christoph holds an MSc in Computer Science.
.NET/C# features a myriad of features for asynchronous and parallel programming. While heavily using and mixing these features in modern C#, we quickly end up in equally heavy headaches: Inscrutable program flows, unexplainable crashes, strange effects etc. In this talk, we identify various pain points and try to provide some instant (but to remain honest, not necessarily complete) pain relief: Specifically, we present a series of pitfalls in asynchronous and parallel C#, and demonstrate tools and techniques to avoid such.