Learning C# Properly (Advanced) Part.3,4,5 Threads and Tasks

This course is an advanced program that delves deeply into C# multi-threading and asynchronous programming, structured to help you systematically learn concurrency handling techniques frequently used in practice. First, you will understand the basic concepts of threads and practice how to create and manage them. You will learn how to finely control thread states and behaviors through various thread methods, the ThreadState enumeration, and Flags attributes. Next, you will practice the differences and use cases of **Interrupt() and Abort()**, and learn how to reliably implement synchronization between threads using the **lock keyword and the Monitor class (Enter, Exit, Wait, Pulse)**. Furthermore, the course covers asynchronous programming techniques essential in modern development environments, including hands-on practice with parallel programming using the Task and Task<TResult> classes, as well as the Parallel class. Finally, through the async/await keywords, you will understand the differences between synchronous and asynchronous code and gain experience applying more efficient asynchronous processing methods to projects. Through this lecture, learners will acquire the ability to develop high-performance applications using multi-threading and asynchronous programming, gaining confidence in solving concurrency issues and implementing efficient programs in real-world scenarios.

(5.0) 1 reviews

9 learners

Level Beginner

Course period 12 months

C
C
C
C

What you will gain after the course

  • Understand the concept of threads and practice thread creation.

  • Learn how to handle threads and practice while understanding various thread methods.

Learning C# Properly (Advanced) Part.5,6,7 Threads and Tasks

This course is an advanced program that delves deeply into C# multi-threading and asynchronous programming, structured to help you systematically learn concurrency handling techniques frequently used in practical applications.

First, you will understand the basic concepts of threads and practice how to create and manage them, learning how to finely control thread states and behaviors through various thread methods, the ThreadState enumeration, and the Flags attribute. Subsequently, you will practice the differences and use cases of Interrupt() and Abort(), and learn how to reliably implement synchronization between threads using the lock keyword and the Monitor class (Enter, Exit, Wait, Pulse).

In addition, you will cover asynchronous programming techniques that are essential in modern development environments, and practice parallel programming using the Task and Task<TResult> classes, and the Parallel class. Finally, through the async/await keywords, you will understand the difference between synchronous and asynchronous code and gain experience in applying more efficient asynchronous processing methods to your projects.

Through this course, learners will acquire the ability to develop high-performance applications using multi-threading and asynchronous programming, and gain confidence in solving concurrency issues and implementing efficient programs in practice.

What you will learn

🔹 Section 1: Threads and Tasks 1

  • Understanding the concepts of processes and threads, and the advantages and limitations of multithreading

  • Learn how to utilize thread methods such as Start(), Join(), and Abort()

  • Practice on thread creation methods (delegates, lambda expressions, etc.), priorities, and checking thread IDs

  • Controlling thread states using the ThreadState enumeration and the Flags attribute

👉 A course to build the foundation of thread handling, from basic theory to practice

🔹 Section 2: Threads and Tasks 2

  • The difference between Thread.Interrupt() and Abort() and how to terminate them safely

  • Thread synchronization processing with the lock keyword, proper usage, and precautions

  • Implementing low-level synchronization with the Monitor class (Enter(), Exit(), Wait(), Pulse())

  • Hands-on practice of fine-grained synchronization programming using shared objects

👉 Learn practical techniques to prevent race conditions and deadlocks in a multi-threaded environment

🔹 Section 3: Threads and Tasks 3

  • Summary of the differences between Thread vs Task and the concepts of asynchronous/synchronous processing

  • Task.Run(), Task<TResult> utilization and hands-on practice for handling execution results

  • Parallel processing using the Parallel class (For(), ForEach(), Invoke())

  • Implementation of asynchronous programming based on async/await

  • Asynchronous file processing through System.IO.Stream class's ReadAsync() and WriteAsync()

👉 Master the essential asynchronous programming skills required for modern C# development.

Notes before taking the course

This course does not provide Q&A support from the instructor.

Learning Materials

Weekly lesson plans are provided as PDF files.

Recommended for
these people

Who is this course right for?

  • Any member who wishes to learn C# programming

  • Any member who wishes to develop computational thinking skills

Hello
This is usefulit

8,279,297

Learners

6,567

Reviews

4.6

Rating

308

Courses

I will help you grow through useful IT lectures.

Curriculum

All

29 lectures ∙ (15hr 48min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1 reviews

5.0

1 reviews

usefulit's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!