Asynchronous Programming in C#

Asynchronous Programming in C#

Course Summary

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.

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

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 C# Fundamentals 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.

Denna kurs har ingen certifiering

Tore Nestenius är en uppskattad kursledare med en särskild förmåga att anpassa undervisningen efter varje deltagares behov. Han är skicklig på att förmedla kunskap på ett sätt som är lätt att förstå och tillämpa i praktiken.

I Tores kurser blandas teori med praktiska övningar, vilket ger deltagarna möjlighet att direkt använda det de lär sig. Med över 14 års erfarenhet inom områden som mjukvaruarkitektur, .NET, C#, ASP.NET Core och webbsäkerhet, är han en erfaren utbildare som engagerar och berikar sina kursdeltagare.

– In­tro­duc­tion, Pro­ces­ses and Th­re­ads

  • Synchronous vs. Asynchronous programming
  • Processes
  • Threads

– Th­re­ad 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?

– Wai­ting for tasks

– Er­ror Hand­ling in Asynchro­nous Pro­gram­ming

– Asynchro­nous pro­gram­ming using async/​await

– Ex­cep­tions in th­re­ads

– Ex­cep­tions in tasks

– Can­cel­ling tasks

  • Cancellation Token Source
  • Tokens

– Con­ti­nu­a­tions

– 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 Sche­du­lers

– Synchro­ni­za­tion con­texts

  • SynchronizationContext vs. TaskScheduler
  • Capturing the context
  • ConfigureAwait

– Va­lue Tasks

  • Tasks vs ValueTasks

– Asynchro­nous Streams

  • IASyncEnumerable

– Chan­nels   And much more…

Course Overview

20 450 kr

2 dagar

Can’t find a (suitable) date, but are interested in the course? Send in an expression of interest and we will do what we can to find a suitable opportunity.

Customized Courses

The course can be adapted from several perspectives:

  • Content and focus area
  • Extent and scope
  • Delivery approach

In interaction with the course leader, we ensure that the course meets your needs.

Skicka intresseanmälan för utbildningen

Send an expression of interest for the training