ASYNC EXPERT

Gain knowledge and understand the basics and rules of async by joining our Async Expert Course.

Course description

Explore the world of asynchronous programming and concurrency in .NET with our Async Expert course. Over ten weeks, we will introduce you to both the fundamentals and advanced techniques, such as async-await and concurrency collections. Our comprehensive approach includes homework to verify your knowledge and exclusive content from experts like Marc Gravel, Daniel Marbach, and Steve Cleary.

Additionally, you can join our community platform, where you will be able to discuss with both mentors and other course participants. Join us and elevate your .NET skills to a new level!

About agenda

€429

Lifetime access

LEVEL:

ADVANCED

TIME

42 h 2 min

Lessons:

81

Language:

ENGLISH

Attendees:

758

Rating:

4.9
Buy now

What you'll get?

Access to 10-weeks Async Expert on-line course - Access to full Async Expert course material.

Material from mentors - Additional material from international Mentors of that program, who are async programming experts.

Access to the course platform - The access to the platform as well as to our dedicated discussion page, which allows you to contact the instructor and other course participants.

Access to the repository - Besides the access to the recordings, ability to contact others and get additional materials from Mentors of the programme you receive the access to repository that includes code examples.

Course‍
Authors

Konrad
Kokosa

More about author

Łukasz
Pyrzyk

More about author

Course Agenda

81 lessons 1704 minutes 917 slides

1. Introduction

  • Course overview
  • BenchmarkDotNet basics
  • Demo: sharplab.io
  • Demo: ConcurrencyVisualizer
  • Demo: Parallel Stacks/Tasks
  • Homework

2. Threading

  • Threads
  • ThreadPool
  • Demo: ThreadPool use with different API
  • Demo: ThreadPool.BindHandle usage
  • Homework

3. Async basics

  • Task API
  • Async-await foundations (with demos)
  • Async eliding
  • ValueTask
  • Task API and async
  • Homework

4. Async II

  • Execution, contexts, scheduler
  • Demo: let’s deadlock it!
  • Demo: your own SynchronizationContext
  • Demo: Scheduler Azure Durable Functions
  • Sync vs async
  • Demo: utilizing legacy synchronous APIs
  • Fire and forget
  • TaskCompletionSource
  • Demo: wrapping callback-based APIs (Event-Based Asynchronous Pattern)
  • Awaitables
  • Locals
  • Demo: StringBuilder i ThreadLocal
  • Demo: scopes with AsyncLocal
  • Demo: floating the state
  • Homework

5. Async III

  • Tasks aggregations
  • Demo: awaiting in task completion order
  • Demo: Parallel.For with async vs Task.WhenAll
  • Demo: testing with TaskCompletionSource and Task.WhenAny
  • Demo: Timeout with WhenAny
  • IAsyncDiposable
  • IAsyncEnumerable
  • Demo: gRPC with IAsyncEnumerable
  • Demo: New SQL client
  • Homework

6. Low-level concurrency

  • Hardware
  • volatile
  • Demo: Epoch programming in ConcurrentQueue
  • Interlocked
  • Demo: simple pool with Interlocked.Exchange
  • Barriers and alignment
  • Demo: range reservation with Aeron.NET and Interlocked.CompareExchange
  • Homework

7. Synchronization

  • Exclusive locking
  • Demo: decompiling lock
  • Demo: non-blocking usage of Monitor.TryEnter
  • Semaphore and SemaphoreSlim
  • Demo: task throttling with Task and SemaphoreSlim
  • ReaderWriterLock
  • Demo: Building custom string pool with ReaderWriterLock
  • Wait handles
  • CountdownEvent
  • Barrier
  • Asynchronous primitives
  • Demo: AsyncLock implementation
  • Homework

8. Concurrent Data Structures

  • Foundations
  • BlockingCollection
  • Demo: BlockingCollection  z  CancellationToken
  • ConcurrentStack
  • Demo: object cache with ConcurrentStack
  • ConcurrentQueue
  • Demo: memory pool in Kestrel ASP.NET with   ConcurrentQueue
  • ConcurrentDictionary
  • Demo: efficient caching with ConcurrentDictionary - .GetOrAdd
  • ConcurrentBag
  • Homework

9. New Concurrent Data Structures

  • Introduction, .NET streams their problematic nature
  • Pipelines
  • Demo: TcpEcho with Pipelines
  • Channels
  • Demo: Usage of the Channel in the ASP.NET Core  MsQuickListener
  • Homework

10. Miscellaneous topics

  • Demo: IValueTaskSource with  Interlocked.CompareExchange
  • Demo: IValueTaskSource based on an array with token discriminator
  • ValueTask and pooling in .NET 5
  • ManualResetValueTaskSourceCore
  • False Sharing
  • F# async vs C# async
  • Summary of the course

Questions & Answers

Which programming language will be used in examples?

All the examples as well as all our work will be done in C#.

Which version of .NET will be used in samples?

We will work on LTS version of .NET Core 3.1 showing differences with .NET Framework when needed.

When does the course begin and for how long does it last?

The course is available after purchase. All material is available, however we recommend watching one module per every week to not overwhelm you and to allow all the group to get through it at the same time.

What is the format of that course?

It is a video course. Recordings are uploaded to the platform. After signing in with your login and password, you have an access to your account. Besides the recordings, you'll gain access to our Community platform where you can communicate with the instructor and other participants. Links, password and login will be passed one week before the course begins.

How long will I have the access to the course?

You will receive life-long access to that edition of the course, including its updates.

What if I would not be satisfied with the course?

If you watch less than 30% of the course and decide that the course is not for you, you will receive a refund. You have 30 days to decide. Just write to contact[at]dotnetos.org, and we will return you 100% value.

Will I receive all the course material at once?

Yes. All material is available immediately. We recommend watching one module per week to not overwhelm you and to keep the group pace at the same tempo.

Will I receive an invoice?

Yes, you will receive a VAT invoice with your purchase. It will be sent to you within few days to the e-mail address provided during the order.

How can I pay for that course?

Payment is done with the use of our on-line shop. Each type of payment supported by it is ok for us.

Can I pay later, on installments, etc.?

Unfortunately it’s not possible to pay on installments but you can choose a “pro forma” invoice that will allow you to pay later by bank transfer.

How many people can access one course account?

The access is given to one person, using an address provided during the purchase. If you are interested in buying more accesses please contact us using info@updateconference.net e-mail address.

What if I have a problem with something or something is unclear?

Write to us with that e-mail address: info@updateconference.net

Didn't find the answer you were looking for?
Don't hesitate to contact us at  info@updateconference.net

€429

Lifetime access
Buy now

LEVEL:

ADVANCED

TIME

42h 2min

Lessons:

81

Language:

ENGLISH

Attendees:

758

Rating:

4.9

Course
Mentors

Daniel
Marbach

More about mentro

Continue exploring

Dive into our wide range of courses and let our experts guide you in enhancing your technical skills and advancing your career to the next level.

27h 1min
online

.NET Diagnostic Expert

Unlock the secrets of .NET diagnostics with our expert-led online course. Over 11 intensive weeks, you'll master a wide range of powerful tools to optimize performance…

Discover more
8h 5min
online

C# 9.0 Professional

Take command of C# 9.0 with our expert-led 9-week online course. Get hands-on with the newest features and sharpen your skills to tackle real-world challenges. Elevate your...

Discover more
42h
online

.NET Memory Expert

Master tools like PerfView and learn to optimize performance like a pro. Don't just manage memory—command it. Enroll now and level up your .NET skills!...

Discover more
2h 40min
online

Synchronization Expert

Transform your coding skills with our online course. Master synchronization techniques through practical demos. Enroll today and start your path to success!...

Discover more
TBA
online

Modernization of .NET Applications

Access the full potential of .NET applications with the Modernization course. Master the latest .NET features, explore new C# language capabilities, and learn best practices...

Coming soon...