Introduction to C# threading 

Are you a C# developer and want to take your multithreading skills to the next level? Are you working on a critical section of code and need to make sure your multithreaded code is rock-solid in production? Or are you preparing for a C# exam?

Then this is the course for you! The tips and tricks in this course will give you an excellent foundation to start writing your very own bulletproof multithreaded code. 

The course covers threads, starting and aborting threads, locking threads, deadlocks, synchronizing threads, the AutoResetEvent and friends, and the thread barrier class. All you need to know to write your own robust multithreaded code that will just keep running and never fail on you in production.

Here’s What You’ll Get

Training Lectures
Video Lessons
Quizzes
Private Slack Channel
Self-Paced Study
Homework Assignments
Certificate of Completion
Valuable New Skills
Lifetime Access

Training Details

This course contains a series of short lectures that cover many fundamental multithreading topics. I’ll show you all the problems you can expect in asynchronous code, like race conditions, deadlocks, livelocks and synchronisation issues. I’ll teach you quick and easy strategies to resolve these problems.

You will learn to write multithreaded code, how to safely start and abort a thread, and how to exchange data between two or more threads. I’ll explain the main reasons why multithreaded code often crashes, and what you can do about it. We’ll also look at resolving race conditions, using the AutoResetEvent and ManualResetEvent in code… and much more!

By the end of this course you will be able to write robust multithreaded C# code that can take a beating.

 

Name: Introduction to C# Threading.

Format: Self-paced.

Content: training lectures, video lessons, and quizzes

Requirements: a Windows, Mac or Linux laptop with Visual Studio Code and the NET Framework

Support: Slack channel.

Associated certification: none.

 

Sneak Preview

In this complimentary training lecture, I will teach you how to synchronize two threads by using the special AutoResetEvent class in C#. This class allows two threads to safely exchange data without risking a race condition or a deadlock.

Training Curriculum

Introduction

Course Intro

Introduction to Threading

Windows, OS/X or Linux? 

Working with Threads

Introduction

How to Start a Thread

First Problem: Race Conditions

Passing In Data to a Thread

Second Problem: Waiting On a Thread

Joining and Suspending Threads

Interrupting and Aborting Threads

Recap

Quiz

Introducing Thread Locking

Introduction

When Should You Lock Threads?

The Lock Statement

Dealing With Deadlocks

Assignment: Have Dinner With The Philosophers

Using The Interlocked Class

Recap

Quiz

How to Synchronize Thread

Introduction

Thread Synchronization With AutoResetEvents 

How to Build a Producer/Consumer Queue

The ManualResetEvent Class 

The CountdownEvent Class

Thread Rendezvous

Recap

Quiz

In Conclusion

What you´ve learned

Sign Up For This Training

This is a self-paced training where you can learn at your own pace and in your own time. All lectures are prerecorded and you can spend as much time as you like on the homework assignments. You’ll be fully supported in our private Slack channel.
The listed price is ex EU VAT. Non-Dutch EU businesses can waive the VAT by providing their tax number during checkout.

Looking For Something Else?

CHECK OUT MY OTHER C# TRAINING COURSES

Is this training course not exactly what you’re looking for? No problem, I have many other C# courses in my catalog. Take a look at these alternatives.

“I wish I had started sooner, because this is a really good course. Mark takes the time to explain difficult concepts in a way that is easy to digest. For example, I loved his explanation of the AutoResetEvent class. I never really understood it that well until now.”

Vikram Hegde, online student

Frequently Asked Questions

  • This Training
  • Self-Paced Training
  • Guided Training
  • Classroom Training
What is included in this training?
You will receive lifetime access to training lectures, video lessons, quizzes and homework assignments.
How long will it take me to complete this training?
For a self-paced and guided training, you can spend as much or as little time you want on the lectures and labs. It’s entirely up to you how long you take to complete the training. For a classroom training, we will complete all of the training content and labs together in 3 days.
How long do I have access to the training content?
You have lifetime access to all training content.
What do I need for this training?
You’ll need a Windows laptop (or other operating system running a Windows virtual machine) with a recent version of the NET Core Framework and the Visual Studio Code editor installed. You will also need Microsoft Teams if you’re attending the live classroom training. 
For which certification does this training prepare me?
This training is not part of an official Microsoft certification path, but you can use it to prepare for the Azure Data Scientist or Azure AI Engineer certifications if you like. 
What is a self-paced training?
In a self-paced training, you study the training lectures and work on the lab assignments in your own time and at your own pace. You can spend as many or as little hours per week as you want on the training. This training format is ideal for tech professionals who have irregular work hours and cannot commit to a classroom training. 
How am I supported in a self-paced training?
I will support you in a private Slack channel. You can ask me anything you want anytime you like, and I will respond as soon as I’m able to. I typically respond in 2-3 hours but it can take a little longer if we are in different timezones. 
Who should attend a self-paced training?
A self-paced training is ideal for tech professionals who can work independently and only need a little support throughout the training to learn the content and complete the lab exercises.
My colleagues and I want to sign up as a team and learn together. Is this possible?
No, self-paced training is only for individual students who each learn at their own pace. Please consider a classroom training instead.
What is a guided training?
In a guided training, you study the training lectures and work on the lab assignments in your own time and at your own pace. We will also spend some time together in a series of Microsoft Teams calls in which I will support you with the training lectures and the lab exercises and help you get ready for the certification exam.
How am I supported in a guided training?
I will support you in a private Slack channel, and you can also book an unlimited number of 1-hour Microsoft Teams support calls with me. In these calls, I will support you with the training lectures and the lab exercises and help you get ready for the certification exam. 
Who should attend a guided training?
A guided training is ideal for tech professionals who prefer a healthy mix of guidance and independence with an average level of support throughout the training to learn the content and complete the lab exercises.
My colleagues and I want to sign up as a team and learn together. Is this possible?
No, guided training is only for individual students who each learn at their own pace. Please consider a classroom training instead.
What is a classroom training?
A classroom training is a live event in which I will present the training lectures, help you complete the lab exercises and get you ready for the certification exam. Classroom trainings are conducted online in full-day Microsoft Teams calls held during business hours in the Central European timezone. You will be sharing the classroom with other students and learn together as a group. 
When and where is classroom training conducted?
Classroom trainings are conducted online during Central European business hours. You will receive a Microsoft Teams link when you sign up for a class. Please note that classroom trainings can also be held on-site at your place of work. Please book a discovery call with me if you’re interested, and we can discuss your requirements.
How am I supported in a classroom training?
I will continuously support you live, because we’ll both be in the same virtual classroom together. 
Who should attend a classroom training?
A classroom training is ideal for tech professionals who can commit to full days of learning and want to learn together as a group. 
My colleagues and I want to sign up as a team and learn together. Is this possible?
Yes, absolutely. Please book a discovery call with me to discuss your requirements. I can offer group discounts to business teams.