Multithreading and Parallel Programming in C#

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

4.30 (558 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Multithreading and Parallel Programming in C#
3,642
students
7 hours
content
Jul 2020
last update
$64.99
regular price

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

Why take this course?

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.

Screenshots

Multithreading and Parallel Programming in C# - Screenshot_01Multithreading and Parallel Programming in C# - Screenshot_02Multithreading and Parallel Programming in C# - Screenshot_03Multithreading and Parallel Programming in C# - Screenshot_04

Our review

--- ### **Overview** The Global course rating for this course is **4.42**, based on all recent reviews. The general sentiment among learners is that it is a well-constructed course with a comprehensive overview of multithreading and parallel programming in C#. It is deemed useful for both novices and those looking to deepen their understanding of these topics. ### **Pros** - **Comprehensive Coverage**: The course covers a wide range of topics, providing a solid foundation for understanding multithreading and parallel programming. - **Depth of Content**: Learners find the course to be in-depth, covering advanced topics that are not commonly found in other courses. - **Practical Application**: Many reviewers appreciate the practical examples that can be applied in real-world scenarios. - **Great for Beginners and Advanced Users**: The content is beneficial for learners at different levels of expertise, offering depth for those who are more advanced. - **Well Structured**: The course is reported to be well structured, with topics building upon each other effectively. - **High-Quality Explanations**: The theoretical explanations are praised as very informative, helping learners understand the concepts thoroughly. ### **Cons** - **Subtitle Issues**: Some reviewers mention that subtitles appear to be generated by speech recognition without human correction, which can cause confusion for non-native English speakers. - **Reading Speed and Pacing**: A few learners find the instructor's pace during explanations to be too slow, suggesting that listening at 1.5X speed could enhance the learning experience. - **Visual Aids Lacking**: The course lacks visual aids beyond text on slides, which some learners feel would enhance understanding, especially for abstract topics like multithreading. - **Code Structure and Examples**: Some reviewers express that the examples provided are not well structured or too simplistic, making it difficult to understand their purpose or real-world application. - **Lack of Advanced Topics**: A few learners point out that some newer concepts and best practices, such as Lazy or AsyncLazy usage with locks, are not covered in the course. - **Code Clarity**: Some content is delivered without clear explanation, and in some cases, the instructor's voice or presentation style can cause disengagement, particularly if it leads to falling asleep. - **Exercise for Knowledge Retention**: There is a suggestion that the course could benefit from including exercises to help retain the knowledge learned. - **Code Source Confusion**: Without clear indications of where the code samples come from or how they relate to the topic at hand, some learners find it challenging to follow along or apply the patterns taught. ### **Additional Notes** - **Accessibility**: Some reviewers note the lack of visual support for those who rely on screen readers or other assistive technologies. - **Language Barrier**: A reviewer points out that the Russian operating system of the tutor can be a source of confusion, particularly regarding exceptions and error messages displayed in a different language. - **Recommendations for Improvement**: To improve the course, suggestions include better subtitle accuracy, more visual examples, clearer code structuring, and the inclusion of exercises or practical tasks to reinforce learning. ### **Final Thoughts** Despite some drawbacks in presentation and content delivery, the course on multithreading and parallel programming in C# is generally well-received for its depth and applicability. With a few targeted improvements, this course could be an even more valuable resource for learners at all levels. It's clear that the core content of the course is strong and has been helpful to many users, which is reflected in its high rating.

Charts

Price

Multithreading and Parallel Programming in C# - Price chart

Rating

Multithreading and Parallel Programming in C# - Ratings chart

Enrollment distribution

Multithreading and Parallel Programming in C# - Distribution chart
1752628
udemy ID
6/17/2018
course created date
10/17/2019
course indexed date
Bot
course submited by