Title: Go Channels in .NET – concurrency made easy

Riccardo Terrell

Target Audience: Some prior knowledge needed

Time: 1:00PM - 1:50PM

Track: Coding and Architecture

Room: 4104

People seemed fascinated by the concurrency features of Go programming language. In Go, concurrent processes communicate by channels that are typed pipes through which you can send and receive values to share memory by communicating. Writing code using channels imposes certain structure and you are in a way forced to write smaller functions that do one thing at a time, which in my opinion, is a good thing. In this talk we cover how Go Channels work, their benefits and why are so popular, next we will compare an equivalent version in .NET Core based on CSP (Communicating sequential processes), and ultimately, we will deep dive into the new .NET Task.Channels and IO.Pipelines types, which are designed to achieve high performance with simple semantic. You will walk away with knowledge to apply Go concurrent programming model in .NET with higher performance.