Asynchronous Programming in C#

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

Course Details

What Will Developers Learn?

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.

Target Audience: C# Developers

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

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 course is designed for C# developers seeking to take their apps to the next level. 

What Are the Course's 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. 

How Long is this Course?

The course takes place over 2 days and it can either be delivered over 2 full days or 4 half days.

Asynchronous Programming in C# Agenda

  • 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…

Async Programming in C#

Article SKU:
T321

Duration:
2 full days or 4 half days

Level:
Advanced

Language:
English, Swedish

Price:
Contact me for a price enquiry or to submit interest.

Asynchronous Programming in C# Training FAQs

Do you provide both on-site and remote training classes?

Yes, we provide both types of training.

Do you provide training in both Swedish and English?

Yes, both options are available. All our course materials are in English and we can teach the class in either Swedish or English.

Do you do half-day trainings?

When we run on-site, we usually do full-day classes. For remote training, we can provide options for both half and full days.

Do you do webinars and shorter talks?

Yes, please visit our Talks page for more details.

Do you provide customized courses?

Yes we do that. Contact me for more information.

Put Tore to the Test: Book A Free Workshop

The best workshops create an immersive experience. See the benefits that practical, attentive, and up-to-date training can offer today by putting me to the test!

I offer 30-45 minute workshops that can be customized to your team’s needs: 

  • Choose a topic that is key to you and your team. 
  • Pick a webinar or in-person workshop if you’re in Sweden or Denmark.
  • I will tailor the workshop to the challenges you’re actually facing. 
  • Chat with me before going ahead to make sure it’s the right fit for you.
 

Feel free to get in touch using the details below, submitting a form on the contact page, or connect with me on LinkedIn!