Master Multithreading & Asynchronous Programming In C#/.Net
Published 9/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 3.26 GB | Duration: 8h 28m
Published 9/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 3.26 GB | Duration: 8h 28m
Multithreading, task based asynchronous programming, async/await, thread synchronization, P-Loops, PLINQ in .NET 8
What you'll learn
How threads run within the OS
Start multiple threads
Threads synchronization techniqueues
Thread safety
Thread affinity
Thread pool
Exception handling and cancellation
Task vs Thread
Running tasks
Waiting for tasks
Task continuations
Exception and cancelation handlings
async & await basics
How async and await works under the hood
Harness the power of parallel loops
Stop, break and throw exceptions from parallel loops
Understand the states of the running results
Performance considerations of parallel loops
Harness the power of PLINQ (parallel LINQ)
Understand the usage of concurrent collecitons
Requirements
Intermediate level in C# and .NET
Visual Studio 2022 or later installed
A strong desire to learn
Description
Welcome to “Master Multithreading and Asynchronous Programming in C# & .NET 8”! Learning multithreading and asynchronous programming is crucial for developing high-performance, responsive, and scalable applications. These skills enable efficient use of CPU resources, keeping applications responsive by offloading long-running tasks. They are essential for handling real-world scenarios like web servers and complex simulations, and they future-proof your skills for modern multi-core hardware. Mastering these techniques not only enhances problem-solving abilities but also opens up valuable career opportunities in the tech industry.This comprehensive course is designed to equip you with the skills and knowledge needed to harness the full power of multithreading and asynchronous programming in C# and .NET. Whether you’re a seasoned developer looking to deepen your expertise or a newcomer eager to learn, this course has something for everyone.Course OverviewIn this course, you’ll Explore the intricacies of CPU, threads, and thread schedulers in .NET, and learn the basic syntax to start a thread. You’ll discover the benefits of threading, such as dividing and conquering tasks and offloading long-running processes. Through hands-on assignments, like creating a web server and an airplane seats booking system, You’ll gain practical experience in thread synchronization, thread safety, and more. These are very important topics for multithreading / parallel programming.We’ll delve into advanced topics like task-based asynchronous programming, async and await, parallel loops, and PLINQ in .NET.You’ll also learn about concurrent collections and how to handle exceptions and cancellations in multithreaded environments. By the end of this course, you’ll be well-versed in creating efficient, responsive, and robust applications using C# in .NET.Why Choose This Course?Comprehensive Curriculum: Covering everything from the basics to advanced concepts, this course ensures you have a thorough understanding of multithreading and asynchronous programming.Hands-On Assignments: Practical assignments help you apply what you’ve learned and gain real-world experience.Expertly Curated Content: Each module is carefully crafted to build upon the previous one, ensuring a seamless learning curve.Flexible Learning: Access the course materials anytime, anywhere, and learn at your own pace.Who Is This Course For?Intermediate and experienced .NET / C# developers: Looking to enhance their skills in multithreading and asynchronous programming.Students: Pursuing a degree in computer science or a related field.Professionals: Working in industries where efficient and responsive applications are crucial.Hobbyists: Interested in expanding their programming knowledge and tackling more complex projects.PrerequisitesIntermediate knowledge of C# and .NETVisual Studio 2022 or later installedHave a desire to learn
Overview
Section 1: Introduction
Lecture 1 Introduction
Lecture 2 CPU, Thread and Thread Scheduler
Lecture 3 Basic syntax to start a thread
Lecture 4 Why threading: Divide and Conquer
Lecture 5 Why threading: Offload long running tasks
Lecture 6 Assignment 1: Web Server Simulation
Lecture 7 Assignment 1 (Answer): Create a Web Server
Section 2: Threads Synchronization
Lecture 8 Threads Synchronization Overview
Lecture 9 Critical Section and Atomic Operation
Lecture 10 Exclusive Lock
Lecture 11 Assignment 2: Airplane seats booking system
Lecture 12 Assignment 2 (Answer): - Airplane seats booking system
Lecture 13 Use Monitor to add timeout for locks
Lecture 14 Use Mutex to synchronize across processes
Lecture 15 Reader and Writer Lock
Lecture 16 Use semaphore to limit number of threads
Lecture 17 Use AutoResetEvent for signaling
Lecture 18 Use ManualResetEvent to release multiple threads
Lecture 19 Assignment 3 - Two way signaling in Producer - Consumer scenario
Lecture 20 Assignment 3 (Answer): Two way signaling in Producer - Consumer scenario
Lecture 21 Thread Affinity
Lecture 22 Thread Safety
Lecture 23 Nested locks and deadlock
Section 3: Multithreading MISC
Lecture 24 Debug programs with multiple threads
Lecture 25 States of a thread
Lecture 26 Make thread wait for some time
Lecture 27 Returning results from a thread
Lecture 28 Canceling a thread
Lecture 29 Thread Pool
Lecture 30 Exception handling in threads
Section 4: Task based Asynchronous Programming
Lecture 31 Multithreading vs Asynchronous Programming
Lecture 32 Basic Syntax of using Task
Lecture 33 Task vs Thread
Lecture 34 Task uses thread pool by default
Lecture 35 Returning result from Task
Lecture 36 Assignment 4 (Question) - Returning results from Task
Lecture 37 Assignment 4 (Answer) - Returning results from Task
Lecture 38 Task Continuation - Wait, WaitAll, Result
Lecture 39 Task Continuation ContinueWith
Lecture 40 Task Continuation WhenAll, WhenAny
Lecture 41 Task Continuation - Continuation Chain & Unwrap
Lecture 42 Exception Handling in Tasks
Lecture 43 Tasks synchronization
Lecture 44 Task Cancelation
Section 5: Async & Await
Lecture 45 Overview of Async & Await
Lecture 46 Basic syntax of Async and Await
Lecture 47 Which thread is used
Lecture 48 Continuation after returning value
Lecture 49 Exception handling with async and await
Lecture 50 Await and Synchronization context
Lecture 51 What does await do
Section 6: Parallel Loops
Lecture 52 Parallel Loops Overview and Basic Syntax
Lecture 53 What happens behind the scene
Lecture 54 Exception handling in parallel loops
Lecture 55 Stop
Lecture 56 Break
Lecture 57 ParallelLoopResult
Lecture 58 Cancelation in Parallel Loops
Lecture 59 Thread local storage
Lecture 60 Performance considerations
Section 7: PLINQ
Lecture 61 Basics of PLINQ
Lecture 62 Producer, consumer and buffer
Lecture 63 foreach vs ForAll
Lecture 64 Exception handling in PLINQ
Lecture 65 Cancelation in PLINQ
Section 8: Concurrent Collections
Lecture 66 ConcurrentQueue
Lecture 67 ConcurrentStack
Lecture 68 BlockingCollection and Producer & Consumer scenario
Section 9: BONUS SECTION
Lecture 69 Bonus Lecture
Intermediate and experienced .NET / C# developers who are looking to enhance their skills in multithreading and asynchronous programming.,Students who are pursuing a degree in computer science or a related field.,Professionals who are working in industries where efficient and responsive applications are crucial.,Hobbyists who are interested in expanding their programming knowledge and tackling more complex projects.