Asynchronous and Parallel Programming in C# with Jeremy Clark
We’d like to welcome back Jeremy Clark back for TechBash 2024. Jeremy will presenting a hands-on workshop on Tuesday, September 24th called Asynchronous and Parallel Programming in C#.
Jeremy helps developers by sharing his own struggles, mostly in technology, but also with being more social as an introvert, understanding potential for learning, and playing banjo. He has worked as a corporate developer, as a Chief Improvement Officer at a startup, and as a contract developer. Currently, he teaches developers through online courses, workshops, tech articles, and conference talks. He spends most of his time in C# and has recently ventured into Go (golang) and Rust (rust-lang) to explore some of his favorite topics: interfaces, delegates, concurrency, and parallel programming.
Here are some more details about Jeremy’s workshop:
Asynchronous programming is a critical skill to take full advantage of today’s multi-core systems. But async programming brings its own set of issues. In this workshop, we’ll work through some of those issues and get comfortable using parts of the .NET Task Parallel Library (TPL).
We’ll start by calling asynchronous methods using the Task Asynchronous Pattern (TAP), including how to handle exceptions and cancellation. With this in hand, we’ll look at creating our own asynchronous methods and methods that use asynchronous libraries. Along the way, we’ll see how to avoid deadlocks, how to isolate our code for easier async, and why it’s important to stay away from “async void”.
In addition, we’ll look at some patterns for running code in parallel, including using Parallel.ForEachAsync, channels, and other techniques. We’ll see pros and cons so that we can use the right pattern for a particular problem.
Throughout the day, we’ll go hands-on with lab exercises to put these skills into practice.
Objectives:
- Use asynchronous methods with Task and await
- Create asynchronous methods and libraries
- Avoid deadlocks and other pitfalls
- Understand different parallel programming techniques
Pre-Requisites:
Basic understanding of C# and object-oriented programming (classes, inheritance, methods, and properties). No prior experience with asynchronous programming is necessary; we’ll take care of that as we go.
Don’t forget that time is running out to save on standard pricing for TechBash. During the month of August, you can save $100 on all ticket types. It’s time to register for a 3-day and 4-day early bird ticket, which is available on EventBrite. In addition, our room block at the Kalahari Resort and Convention Center in Pocono Manor, PA expire that same day. After that, expect to pay even more money to enjoy the amenities of the Kalahari.
If you’re interested in sending your entire dev team, or even just a group of five or more, be sure to reach out to the TechBash Groups email.