Master Multithreading & Asynchronous Programming In C#/.Net

Posted By: ELK1nG

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

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.