How To Write Bulletproof Multi-Threaded C# Code (

This course teaches you how to write robust multi-threaded C# code. A skill every professional .NET developer must know

Created by: Mark Farragher

Produced in 2022

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!

Quality Score

Content Quality
Video Quality
Qualified Instructor
Course Pace
Course Depth & Coverage

Overall Score : 84 / 100

Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a c# course? Or looking for more detail on Mark Farragher's How To Write Bulletproof Multi-Threaded C# Code? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

Course Description

Last updated November 22, 2017 - added new promo video

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.
30 day money-back guarantee
This course comes with an unconditional, Udemy backed, 30-day money-back guarantee. If you are dissatisfied with the course for any reason, simply request a refund and get your full purchase amount back, no questions asked.Who this course is for:
  • Beginner, intermediate, and advanced C# programmers who want to learn how to write bulletproof multi-threaded C# code
  • Developers who are about to take a job interview and need to prepare for threading-related questions
  • Professionals who are writing a section of multi-threaded code in a large C# project

*Some courses are excluded from this sale. Coupon not working? If the link above doesn't drop prices, clear the cookies in your browser and then click this link here.
Also, you may need to apply the coupon code directly on the cart page to get the discount.

Coupon Code

Instructor Details

Mark Farragher

Mark Farragher is a blogger, investor, serial entrepreneur, and the author of 11 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.



99 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Kamlesh Patel on a month ago

There were good concepts covered, but lacking the usage of TPL and examples

By Tzahi Caspi on 3 months ago

Great course, very clear.Upgraded my threading knowledge.

By Dean Martin on 3 months ago

Good material but not very practical. I would have liked to see these concepts used in practical examples. Actual business cases being implemented and such.

By Michael Yates on 4 months ago

I originally purchased the course for a refresher in TPL, but since TPL is not good for all situations (and is not covered in this course) I found the refresher and in depth dive into the Thread Class very useful since options were presented that I was not aware of. This course is well worth it. Thank you!

By Jess Salas on 5 months ago

Excellent course. Explanations are clear and step-by-step. Everything is disclosed in a progressive manner and key concepts are repeated throught the course in the opportune moments.

By Nmeth-Pk Istvn on 4 months ago

Cons: Would be good to see how all of this can be / shoud be used with the TPL. The voice is quite slow and robotic, was sometimes really annoying.Pro: The course gives a good overview about the topic with clear, easy to understand examples.

By Steve Pagano on 2 weeks ago

I've seen a number of the issues raised before, but there have been a few cases covered that I hadn't considered before, so it was good to get a feel for it.A minor quibble: the author gives in incorrect definition of a race condition, but in the end he makes his point clear enough that this nitpick falls by the wayside.

By Kimberly Emerson on 4 months ago

This is an excellent course. It quickly delivers content that is easy to understand in a simple and easy to digest fashion.

By Dmytro Saus on 3 weeks ago

Great explanation and task assignement

By Ramanathan M N on 3 months ago

Hello,I do have very good experience in C# still this course gave me better clarity on implementing multi threadingRegardsRam

By Bojan Rogulja on 6 months ago

Nice in depth explanations. I knew some stuff already, but I also filled some gaps in my knowledge. This course goes straight to the point of locks, deadlocks, *ResetEvents and more cool stuff. Nicely done!

By Ed Schultz on 7 months ago

I already knew quite a bit about Multi-Threaded techniques but hadn't heard about CountdownEvent and Barrier classes... I appreciated the examples and the discussion regarding the Philosophers Dinner... I would recommend this course to anyone writing Multi-Threaded code just to verify your knowledge and maybe learn something new...