Skip to content
UdemySoftware DevelopmentPaid courseAll LevelsCertificate

Multithreading and Parallel Programming in C# (Udemy.com)

Overcome multithreading and asynchronous programming in C# problems & improve performance by parallel computing in C#

Created by: Engineer Spock

Last updated July 2020

icon
What you will learn

  • Be able to use a full power of TPL (task parallel library) by using Tasks
  • Understand the low-level of Threads
  • Understand all the basic concepts such as "Thread", "Process"; difference between "asynchrony", "concurrency", "multithreading", and "parallel computing"
  • Use the full power of synchronization constructs such as Monitor (lock), Interlocked, ReaderWriterLockSlim, Semaphore, SynchronizationContext
  • Use the full power of signaling constructs such as AutoResetEvent and ManualResetEventSlim, CountdownEvent and Barrier, Mutex
  • Use spinners where appropriate: SpinLock, SpinWait
  • Understand and use Immutable and Concurrent Collections
  • Harness the power of parallel computing by using PFX components: Parallel class and PLINQ

How it compares

Against the other 518 rated Udemy courses in Software Development on CourseDuck:

  • Rating4.2 out of 5higher than 10% of them
  • Reviews610#200 of 519 by number of reviews
  • Length7.2 hourslonger than 56% of them
  • Last updatedJuly 2020earlier than 88% of them

icon
Course Description

For the last two decades, computers became faster by increasing the number of CPU cores. However, the fact of having more cores itself doesn’t make a computer drastically faster if those cores are not used by software properly. We, as software developers, should know how to write asynchronous and parallel executing code to make our applications faster and more responsive.

This course is all about developing more responsive and fast programs. Multithreading and Parallel Computing are topics for those who already have some experience in programming, otherwise, you may face difficulties with understanding the content. Anyway, this course covers:

  • Theoretical foundations of asynchronous programming: main concepts, processes, threads and so on

  • Low-level Thread API, APM, and EAP

  • Task Parallel Library (TPL) including starting tasks, canceling tasks, chaining tasks, waiting for tasks, IO-based tasks, exceptions handling and other

  • Async and Await feature of C#

  • Synchronization including atomicity, Interlocked, Monitor (lock), ReaderWriterLockSlim, Semaphore, SynchronizationContext, and Mutex

  • Signaling constructs such as AutoResetEvent and ManualResetEventSlim, CountdownEvent and Barrier

  • Spinning including SpinWait, SpinLock and our own UpdateableSpin

  • ConcurrentCollections including ImmutableStack, ImmutableQueue, ImmutableList, Immutable Sets, ImmutableDictionary, ConcurrentStack, ConcurrentQueue, ConcurrentBag, BlockingCollection

  • Parallel Programming including Parallel class and PLINQ

Enroll and start learning the foundations of multithreading and parallel computing in .NET.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Engineer Spock

I'm thankful enough for that I love what I do.

I began my career as a postgraduate student participating in Microsoft ImagineCup contest.

I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for nearly 7 years, primarily based on .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified specialist in Windows Applications and Service Communication Applications by Microsoft. I'm one of the coordinators of the MSK.NET User Group in Moscow.

"If it's work, we try to do less. If it's art, we try to do more." - Seth Godin.

What I can say is that software is my art.

icon
More courses by Engineer Spock

$64.99

$74.99

$11.99

$11.99

$69.99

$79.99

icon
More Software Development courses

$10.99

$109.99

$19.99

$19.99

$94.99

$94.99

icon
Reviews

4.2

610 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Tomás Muñiz Quiroz on 10/15/2023

The course is well structured and touches all the necessary topics for the understanding of multi-thread, but the content can be improved, there is too much slide reading, there are no visual examples (especially when dealing with such an abstract topic as multi-thread), all the examples have almost no structure, it looks like code made on the fly and there is not enough talk about "side effects".

By מאיר פז on 2/11/2023

This course provide a lot of detailed and applicable information about using concurrency in c#. Everything is well explained and demonstrated using simple c# code. Thank you Engineer Spock for your great course.

By Maksym Prykhodko on 8/8/2022

Course was actually very good. Many helpful constructions and patterns, many of them are not even mentioned in a C# books (Troelsen for instance). Sometimes I felt like an examples of usage were to easy and didn`t demonstrate the real purpose of this thing (e.g. in Immutable section ImmutableStack, ImmutableQueue examples). But

By Jose Zamorano on 7/20/2021

In depth theoretical explanations and good demos to review the concepts by coding along. If you create a new course where all the concepts are put to practice in a real production grade project I will be the first to join.

By Joshua Howard on 5/23/2021

Elias has a voice that puts me to sleep, but there is a lot of content/context in here you won't find in other courses. This is my 5th course on Async/Parallel programming, it was not my favorite, I don't think this should be the first course people take on the topic, it could have been refined in some places, but it is absolutely a must watch if your doing deep study on Parallel programming!

By Daniil Cherepkov on 11/2/2020

In 'Concurrent Collections' sections teacher showed them in single-threaded environment, which is not so 'impressive' - it would be better to demonstrate how they behave, or even show the best practices how to work with them in multi-threaded environment. In overall - this course is great, comprehensive and topics are clear to understand.

By Nickolai Paromov on 7/21/2020

The presentation and content were clear, on point, and practical. There was some background given in the relevant concepts but I feel like I did not walk away with the kind of "when to use what" knowledge that I was hoping to get. I suppose that kind of content could have greatly expanded the scope of an otherwise concise course but something more on that would still be appreciated, even if it is just a pointer to some other course.

By Sandeep Gupta on 1/8/2020

Just an average experience so far... I understand trainer is Russian, it would have been better not to see UI in Russian. Though, he explained in English but you have to again listen to him carefully and that again consumes the time. Explanation of some of the concepts like Thread cancellation was made too complex to understand that otherwise could have been much simpler. Some real examples missing. At end of the day, i found him doing lot of work to explain but it's simply not 'simple' to understand and enjoy the course.

By Andrey Tarasov on 11/13/2019

This course is very helpful for the beginners and not advanced programmers in multithreading. If you want to dive more deeper you need to learn topics from this course using documentation from microsoft. I do recommend using this docs.

By Brent Johnson on 1/1/2019

I thought this course was very well thought out and executed. There were a few things given only cursory attention, but generally that was because they were peripheral to the main thrust of the course, or only of niche interest. Although I personally might have wished for a little more explanation in places (e.g. in the "What is a Task?" lecture I wish it had been mentioned that accessing Task.Result blocks the accessing thread), I think the course content built nicely upon itself. The greatest strength of the course was as an excellent overview with sufficient depth to give me confidence when digging more deeply into areas which had previously confused me.

Showing all 10 reviews on CourseDuck

Read all 610 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

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

Overall Score : 84 / 100