Asynchronous Programming in C#



Kursarrangør: Glasspaper AS
Sted: Oslo, Helsfyr
Oslo
Kursadresse: Brynsveien 12, 0667 Oslo (kart)
Type:Åpent kurs / gruppeundervisning
Undervisningstid: 09:00 - 16:00
Varighet: 2 dager
Pris: 16.900

Discover the practical power of Asynchronous Programming in C#, in this up-to-date course covering C# 11 and .NET 7. Gain the expertise needed to seamlessly architect and implement responsive, efficient and scalable applications.

In today’s dynamic software landscape, mastering asynchronous programming is more and more essential for crafting faster, hardware-optimized applications. As multi-core CPUs are now standard, parallel processing is the key to unlocking performance. While the demand for responsive interactions with remote services has only heightened the immense value that asynchronous programming can bring.

In this comprehensive two-day course for seasoned C# and .NET developers seeking to master asynchronous programming, we will cover a diverse set of libraries and tools, from threads and locks to advanced features like concurrent collections, PLINQ, Tasks, and async/await. Each library’s purpose will be demystified, helping you to pinpoint the right solutions to specific challenges.

The course offers clear, accessible explanations of the underlying theory and key terms, as well as give hardware-level insights to solidify your grasp of the material. There will also be hands-on exercises that enable you to master and apply the intricacies of asynchronous programming.

By the end of this course, you will be empowered to use asynchronous techniques to deeply optimize the efficiency, scalability and responsiveness of your applications.


Target Audience:
Experienced C# / .Net developers who would like to enhance their applications using asynchronous and parallel programming.

Level: Advanced

Prerequisites:
To get the most out of this training, participants should have at least one year of experience as a C# developer and possess the skills covered in our Introduction to C#.NET course. A strong understanding of C#, including generics, lambdas, and LINQ, is crucial. While previous experience in parallel or async programming is not required, participants will benefit from familiarity with basic parallel concepts.

Course outline:
Introduction, Processes and Threads

Synchronous vs. Asynchronous programming
Processes
Threads
Thread pool

The cost of creating threads
Worker and I/O Threads
When not to use the thread pool
Tasks

Creating tasks
Returning data from a task
Using Tasks or Threads?
Waiting for tasks

Error Handling in Asynchronous Programming

Exceptions in threads
Exceptions in tasks
Cancelling tasks

Cancellation Token Source
Tokens
Continuations

Async – await

Async methods
Async state machine
The await keyword
Returning data from async methods
Async all the way
Async lambdas
Optimizing async/await
.GetAwaiter().GetResult()
WaitAsync
Task Schedulers

Synchronization contexts

SynchronizationContext vs. TaskScheduler
Capturing the context
ConfigureAwait

Value Tasks

Tasks vs ValueTasks
Asynchronous Streams

IASyncEnumerable
ConfigureAwait
Cancellation of streams
Async LINQ

And much more…