-
Learning by doing
-
Trainers with practical experience
-
Classroom training
-
Detailed course material
-
Clear content description
-
Tailormade content possible
-
Training that proceeds
-
Small groups
The course Asynchronous Programming in C# focuses on how to use C# and the .NET Framework to write asynchronous code with the async and await mechanism.
The course Asynchronous Programming in C# starts with a discussion of the differences between synchronous and asynchronous code. Covered are the disadvantages of blocking behavior and the advantages of parallelism and concurrency with threads and tasks.
It is explained how in synchronous code a thread that issues a blocking call waits for the result. Asynchronous code does not wait while another thread executes the call. The original thread is notified via a callback or other mechanism when the result is ready.
Next the implementation of asynchronous code in the .NET Framework and .NET Core is treated. Various patterns for writing asynchronous code are discussed. The benefits of using .NET Core are covered and asynchronous algorithms are explained.
Then the async await mechanism is discussed. It is explained how a method preceded by the async keyword becomes an asynchronous method. In the body of the method the keyword await can then be used to wait for the result of an asynchronous call.
The prevention of data corruption by means of synchronization primitives such as locks, mutexes and semaphores is also on the program of the course Asynchronous Programming in C#. Attention is paid to race conditions and deadlock as well.
Furthermore exception handling in an asynchronous environment is a topic of the course. The focus is set on faulted tasks and disposable objects. Finally asynchronous calls to services are discussed and the interaction between handling in the frontend and the backend.
The course Asynchronous Programming in C# course is designed for developers who want to learn how to implement asynchronous code with async await in .NET.
Good knowledge of C# or a comparable language such as Java is required to participate in this course.
The concepts are explained using presentations and demos in Visual Studio.NET. There is ample opportunity to practice. The course times are from 9.30 to 16.30.
After successfully completing the course the participants will receive a certificate Asynchronous Programming in C#.
Module 1 : Async Intro |
Module 2 : Async in .NET |
Module 3 : Async Await |
Synchronous Code Blocking Behavior Asynchronous Code Callbacks Completion Events Threads and Tasks Parallelism and Concurrency IO Bound Tasks CPU Bound Tasks Long Running Tasks Background Workers |
Async in .NET IAsyncResult Asynchronous Patterns Event Based Pattern Task Based Pattern Async .NET Core .NET Core Benefits Asynchronous Algorithms Thread Pools Thread Pool Starvation Memory Consumption |
Async Keyword Async Method Await Keyword Suspending Execution Yielding Control Awaitable Tasks ConfigureAwait GetAwaiter Task Completion Task Composition Task |
Module 4 : Synchronization |
Module 5 : Exceptions |
Module 6 : Advanced Topics |
Race Conditions Deadlock Need for Synchronization Thread Safe Code Lock Objects Mutexes Semaphores Timing and Synchronization |
Exception Handling Asynchronous Exceptions Throwing Exceptions Task.Exception Property Faulted Tasks Catching Exceptions Disposable Objects AggregateException |
Async Services Async Request Ajax Calls Async Frontend Async Backend Await Tasks Efficiently WhenAll WhenAny |