Asynchronous Programming in C# - english



Kursarrangør: Glasspaper AS
Sted: Oslo, Helsfyr
Oslo
Kursadresse: Brynsveien 12, 0667 Oslo (kart)
Type:Åpent kurs / gruppeundervisning
Studie / yrkesutdanning
Undervisningstid: kl 09:00 - 17:00
Varighet: 2 days
Pris: 16.900
Neste kurs: 29.09.2025 | Vis alle kursdatoer

We provide course about Asynchronous Programming in C# in english. Discover the practical power of Asynchronous Programming in C# and gain the expertise needed to write responsive, efficient, and scalable applications.

Course description:
In today’s dynamic software landscape, mastering asynchronous programming is increasingly essential for writing faster, hardware-optimized applications. As multi-core CPUs are now standard, parallel processing is the key to unlocking performance. This comprehensive two-day course for seasoned C# and .NET developers will cover a wide range of topics, from threads, tasks and async / await to advanced features like task schedulers and asynchronous streams.

Included are plenty of hands-on exercises that enable you to master and apply the concepts of asynchronous programming. By the end of this course, you will understand how to use asynchronous techniques to optimize your applications’ efficiency, scalability, and responsiveness.

Course outline:
Module 1 - Introduction, Processes and Threads:
• Synchronous vs. Asynchronous programming
• Processes
• Threads

Module 2 - Thread pool:
• The cost of creating threads
• Worker and I/O Threads
• When not to use the thread pool

Module 3 - Tasks:
• Creating tasks
• Returning data from a task
• Using Tasks or Threads
• Waiting for tasks

Module 4 - Error Handling in Asynchronous Programming:
• Exceptions in threads
• Exceptions in tasks

Module 5 - Cancelling tasks:
• Cancellation Token Source
• Tokens
• Continuations

Module 6 - 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

Module 7 - Synchronization contexts:
• SynchronizationContext vs. TaskScheduler
• Capturing the context
• ConfigureAwait

Module 8 - Value Tasks:
• Tasks vs ValueTasks

Module 9 - Asynchronous Streams:
• IASyncEnumerable
• ConfigureAwait
• Cancellation of streams
• Async LINQ
• And much more…

Course instructor: Tore Nestenius

Tore has worked as a consultant since 1997 and is a very knowledgeable system developer and has in the past worked for large companies like Ericsson and Flextronics. Early in his career, Tore Nestenius started Programmers Heaven - a portal with over 750 000 monthly users. He’s behind several other successful projects like CodePedia - a Wiki for developers, the Open Source project TNValidate, and the C# School e-book with over 100 000 downloads.

Target audience:
Experienced C# developers who want to understand how to correctly write asynchronous programming to enhance their applications using asynchronous and parallel programming.

Prerequisites:
• To get the most out of this training, participants should have at least one year of experience as a C# developer. A strong understanding of C#, including generics, lambdas, and LINQ, is crucial. Previous experience in parallel or async programming is not required. This course is up-to-date with .NET 8 and C#12.

Level:
• Advanced level

Language:
• The course is given in english