How To Write Bulletproof Multi-Threaded C# Code (Udemy.com)
This course teaches you how to write robust multi-threaded C# code. A skill every professional .NET developer must know
Created by: Mark Farragher
Last updated May 2026
What you will learn
- Learn to write multi-threaded code
- Safely abort a thread
- How can two or more threads exchange data?
- The main reasons why multi-threaded code crashes
- Learn to resolve race conditions
- Use AutoResetEvent and ManualResetEvent in your code
- The Dining Philosopher problem
- Line up threads with the Barrier class
- ... and much more!
How it compares
Against the other 194 rated Udemy courses in C# on CourseDuck:
- Rating4.6 out of 5higher than 76% of them
- Reviews1,417#51 of 195 by number of reviews
- Length3 hoursshorter than 77% of them
- Last updatedMay 2026more recently than 86% of them
Quality Score
Overall Score : 92 / 100
Course Description
Do you know how to write robust multi-threaded C# code that does not crash?
Lets face it: writing multi-threaded code is hard. The sobering truth is that, unless you know exactly what you're doing, your code is pretty much guaranteed to crash in production.
Don't let this happen to you!
It doesn't have to be like this. If you have a good understanding of multi-threaded programming and follow a few simple industry best practices, you can write robust code that can take a beating.
I wrote a multi-threaded conversion utility a few years ago, that successfully migrated 100,000 documents from SharePoint 2010 to SharePoint 2013. The program worked flawlessly the first time, because I implemented all of the best practices for writing asynchronous C# code.
Sound good?
In this course I am going to share these practices with you.
In a series of short lectures I will cover many multi-threading topics. I will show you all of the problems you can expect in asynchronous code, like race conditions, deadlocks, livelocks and synchronisation issues. I'll show you quick and easy strategies to resolve these problems.
By the end of this course you will be able to write robust multi-threaded C# code that can take a beating.
Why should you take this course?
You should take this course if you are a beginner or intermediate C# developer and want to take your skills to the next level. Asynchronous programming might sound complicated, but all of my lectures are very easy to follow, and I explain all topics with clear code and many instructive diagrams. You'll have no trouble following along.
Or maybe you're working on a critical section of code in a multi-threaded C# project, and need to make sure your code is rock-solid in production? The tips and tricks in this course will help you immensely.
Or maybe you're preparing for a C# related job interview? This course will give you an excellent foundation to answer any threading-related questions they might throw at you.
Instructor Details
- 4.6 Rating
1,417 Reviews
Mark Farragher
Mark Farragher is a blogger, investor, serial entrepreneur, and the author of 12 successful IT courses on Udemy and other marketplaces. His career spans over two decades during which Mark has been a Founder twice and CTO three times, and has launched two lean startups in The Netherlands.
Mark became a Microsoft Certified Trainer in 2005 and started training classes in .NET development, web design, and Microsoft back-office servers. Today he uses his extensive knowledge of IT to help CTO’s, architects, and other tech professionals with their leadership, communication, and technical skills.
Mark has MCSA and MCSD certifications from Microsoft and is a certified Microsoft Trainer and Scrum master. He speaks fluent English, Dutch, and German.
More courses by Mark Farragher
How To Become An Outstanding Solution Architect (2026)
4.5 (11,754 Reviews)
Provider: Udemy
Time: 7.8h
$16.99
C# Memory Tricks: Learn How To Master The Garbage Collector (2026)
4.6 (1,741 Reviews)
Provider: Udemy
Time: 3.5h
$12.99
C# Performance Tricks: How To Radically Speed Up Your Code. (2026)
4.4 (1,711 Reviews)
Provider: Udemy
Time: 4.3h
$14.99
Write Asynchronous C# Code With Tasks and PLINQ (2026)
4.6 (1,017 Reviews)
Provider: Udemy
Time: 3.2h
$13.99
Boost Your C# With Structural And Creational Design Patterns (2026)
4.3 (882 Reviews)
Provider: Udemy
Time: 4.1h
$11.99
More C# courses
C# Developers: Double Your Coding Speed with Visual Studio (2018)
4.7 (4,035 Reviews)
Provider: Udemy
Time: 2.2h
$13.99
Object Oriented Programming with C# - Beginner to Advanced (2020)
4.7 (2,063 Reviews)
Provider: Udemy
Time: 5.6h
$64.99
Learn Game Development with C# Programming and MonoGame! (2025)
4.7 (1,094 Reviews)
Provider: Udemy
Time: 6.6h
$12.99
Reviews
By Servicedesk Inpact on 8/8/2024
The teacher prepared the video course material thoroughly and clearly knows the topic inside and out. Additionally, the way this teacher communicates and articulates the subject is very clear. There are plenty of examples and code provided, making it easy to follow along. The only minor suggestion I have is to improve the microphone quality by using a voice microphone that doesn't pick up room reverb. This would elevate the production quality even further. Thank you for teaching this topic; it was a pleasure to follow along. I learned a lot. Kind regards!
By Rahul Kumar on 10/23/2023
Amazing course!!! Thank you for such knowledgeable content on Multithreading. This will help me to understand the basic and most important concepts which generally are used in real-time applications. => One request, please make a course that contains all the concepts of multithreading in real-time projects with .NET core.
By Anonymized User on 12/1/2022
Good material, good examples and practice, good material coverage in the quizzes. I had fun and used what I learned to create a program I've been wanting for some time. ^_^ 1 point of confusion: when I downloaded the resources and they had no extension it really threw me off. Easily found the solution by searching the course comments but still felt a little unbalanced :).
By Charles Hall on 10/20/2022
I really enjoyed the course: it was very informative and cleared up a lot of confusion that I had about creating multi-threaded applications. My only wish is for the course to have had real-life scenarios or examples on when/why you would implement certain features of multi-threaded programming. Nevertheless, the course did force me to re-think how I could have completed past tasks such as migrating documents into SharePoint. Had I taken this course prior to that task, I could have completed the task in a fraction of the seven hours that it took me.
By Anonymized User on 10/4/2021
I really liked it. Before taking the course, I thought multithreading was just parallel functions running together, but didn't realise the implications behind it. Before starting the course, I read a comment or two stating that it lacked the Task class. Not sure about what it is, but I am sure that if required, I now have enough knowledge to understand the concepts behind it and use it. Anyway, now it's up to me, right?
By Carlos Gutiérrez López De La Franca on 8/3/2020
The title of the course is very pretentious. It is an introductory course. The firsts sections are very introductorious. And uses some examples that probably is better not to use in 2020. There are clear ways to explain without use the classical boring examples like the Philosophers. I think in these first chapters the examples could be more illustrative than the classical Philoshopers problem. But in general the course is good. And the better part is the last section. With a more advanced concepts. In general I am happy with the course. But I put 3.5/5 stars because I think there are aspects that could be better.
By Tom Liao on 8/18/2018
I really enjoyed this course and start to utilize what I've learned from here even before I finished whole sessions. Long story short, what Mark provided in this course really helps me on my real world projects. Mark has done a very good job on providing the clear concept on C# threading.
By Anonymized User on 4/11/2018
Your examples using turnstiles are exemplary. I have not even completed the course yet and already you managed to explain a concept that takes people years to master. The code examples were an absolute joy to work with and incorporating their concepts into my pet projects was amazingly easy due to your systematic approach to the subject.
By Carsten Breum on 3/28/2018
I wasn't aware of the Barrier class so good I catched that one. I like the simple examples that nicely demonstrates the concepts, but for real world applications you have multiple classes maybe in a layered pattern like the Model-View-ViewModel when writing WPF programs. So examples of synchronizing and locking between multiple instances for components used in the model would be great to cover. Also be aware that you can never directly touch a WPF control from a worker thread. Showing how to use the Dispatcher to invoke work on the main and worker threads would also be nice to cover. For inspiration I wrote an article 2 years ago: https://www.codeproject.com/Articles/1159346/Architecture-for-a-Service-with-Multiple-Clients-u
By Vitor Rigoni on 9/21/2016
The course covers important concepts that are already making a difference in my work. The thread synchronization lectures are specially important and useful. Also the instructor is really knowledgeable and very didactic, has a very clear english (so don't worry if your english is not so awesome), and always responds to doubts on the course forum. The only thing I feel like it's missing is real life application of the examples. Other than that, I really recommend the course!
Some assumptions about the skill level of the student might make it hard for some students to follow along... But I suppose if you are getting into multi-threading you should have a pretty good understanding of C# already.
The course material was well presented, the instructor has a clear mastery of the subject, which gives a lot of confidence in watching the lectures. The examples are real world as well, I'm in a situation where some services I'm building are in need of optimizations, and the examples and course material covered lined up really well with it.












