Learn Parallel Programming with C# and .NET
What you'll learn
- Create and run independent tasks
- Manage synchronized access to data
- Effectively use parallel collections
- Work with task continuations
- Write parallel loops
- Leverage the power of Parallel LINQ
- Master asynchronous programming (async/await)
Requirements
- Basic knowledge of C# and .NET framework
- Basic knowledge of multithreading
Description
This course is about .NET Parallel Programming with C# and covers the core multithreading facilities in the .NET Framework, namely the Task Parallel Library (TPL) and Parallel LINQ (PLINQ).
This course will teach you about:
Task Programming: how to create and run tasks, cancel them, wait on them and handle exceptions that occur in tasks.
Data Sharing and Synchronization, ensuring your access to shared data also happens in a safe and consistent manner.
Concurrent Collections, such as ConcurrentBag, which operate correctly even when accessed from multiple threads.
Task Coordination concepts, including the idea of continuations, as well as uses of synchronization primitives to coordinate tasks.
Parallel Loops which let you easily iterate over a counter or collection while partitioning the data and processing it on separate threads.
Parallel LINQ, the parallel version of .NET's awesome Language-Integrated Query (LINQ) technology.
Async/Await and .NET's support for asynchronous programming.
This course is suitable for:
Beginner and experienced .NET/C# developers
Anyone interested in multi-threading, parallelism and asynchronous programming
The course consists of the following materials:
Video lectures showing hands-on programming
C# files that you can download and run
Before taking the course, you should be comfortable with the C# programming language and familiar with multi-threading.
Who this course is for:
- Beginner and experienced .NET developers
- Computer Science students
- Anyone interested in modern approaches to multithreading/parallelism
Featured review
Instructor
Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.