Asynchronous Programming in C#

Nearly all applications today require some kind of asynchronous functionality. Your application might be described as a desktop application that must remain responsive to user input, or perhaps you are working on a web application that must scale under load. Your application may require asynchrony because it is compute-intensive and must take advantage of multi-core hardware, or maybe yours is a distributed application that must access multiple resources concurrently. Regardless of the type of application, there is a core set of skills and knowledge you need to add asynchrony to your application. That is what this course covers.

This online learning event is comprised of Articles to read, Labs to participate in, Videos to watch and all the time you have access to Mentors that will help you better understand the need to add asynchrony to your application. We estimate that the learning event will take you around 13hrs to complete.

Pre-Requisites

Familiarity with C# syntax, including delegates and lambda expressions

The following courses would be useful:
GK5222 - Getting Started with C# Programming
GK5227 - Object Oriented Programming with C#
GK5231 - Advanced Topics in C#

Content

1. Recognize the various APIs for asynchronous programming - 1 hours 15 minutes 10 Activities: Article  (8)  |  Lab  (0)  |  Video  (2)
2. Perform an operation periodically with a timer - 35 minutes 6 Activities: Article  (3)  |  Lab  (1)  |  Video  (2)
3. Add a background thread to a UI application - 1 hours 10 minutes 6 Activities: Article  (0)  |  Lab  (1)  |  Video  (5)
4. Call asynchronous methods using Task - 1 hours 33 minutes 10 Activities: Article  (2)  |  Lab  (4)  |  Video  (4)
5. Add asynchronous methods to a class - 1 hours 43 minutes 13 Activities: Article  (6)  |  Lab  (3)  |  Video  (4)
6. Access shared data from multiple threads - 13 Activities: Article  (4)  |  Lab  (3)  |  Video  (6)
7. Simplify asynchronous code with C# 5 async and await - 1 hours 52 minutes 9 Activities: Article  (3)  |  Lab  (3)  |  Video  (3)
8. Improve responsiveness of a desktop UI with asynchrony - 1 hours 17 minutes 7 Activities: Article  (1)  |  Lab  (2)  |  Video  (4)
9. Share collections of data between threads - 1 hours 13 minutes 7 Activities: Article  (3)  |  Lab  (3)  |  Video  (1)
10. Parallelize an algorithm to use multiple cores - 40 minutes 4 Activities: Article  (2)  |  Lab  (2)  |  Video  (0)

Objectives

  • Recognize the purpose of the various asynchronous APIs
  • Perform an operation periodically
  • Call and write asynchronous methods
  • Access shared data and collections from multiple threads
  • Simplify asynchronous code with C# 5 async and await
  • Perform CPU-intensive work on multiple cores

Target Audience

C# developer who needs to add asynchrony to an application.