Tasks are abstractions in .NET that provide units of asynchrony, just like promises in JavaScript. In initial versions of .NET, we had to rely on threads only, which were created either directly or using the ThreadPool class. The ThreadPool class provided a managed abstraction layer over threads but developers still relied on the Thread class for better control. By creating a thread via the Thread class, we gained access to the underlying object, which we can wait for, cancel, or move to the foreground or background. In real time, however, we required threads to perform work continuously. This required us to write lots of code, which was difficult to maintain. The Thread class was also unmanaged, which put a high burden on both the memory and the CPU. We needed the best of both worlds, which is where tasks come to the rescue. A task is nothing but a wrapper over a thread...
Hands-On Parallel Programming with C# 8 and .NET Core 3
By :
Hands-On Parallel Programming with C# 8 and .NET Core 3
By:
Overview of this book
In today’s world, every CPU has a multi-core processor. However, unless your application has implemented parallel programming, it will fail to utilize the hardware’s full processing capacity. This book will show you how to write modern software on the optimized and high-performing .NET Core 3 framework using C# 8.
Hands-On Parallel Programming with C# 8 and .NET Core 3 covers how to build multithreaded, concurrent, and optimized applications that harness the power of multi-core processors. Once you’ve understood the fundamentals of threading and concurrency, you’ll gain insights into the data structure in .NET Core that supports parallelism. The book will then help you perform asynchronous programming in C# and diagnose and debug parallel code effectively. You’ll also get to grips with the new Kestrel server and understand the difference between the IIS and Kestrel operating models. Finally, you’ll learn best practices such as test-driven development, and run unit tests on your parallel code.
By the end of the book, you’ll have developed a deep understanding of the core concepts of concurrency and asynchrony to create responsive applications that are not CPU-intensive.
Table of Contents (22 chapters)
Preface
Free Chapter
Section 1: Fundamentals of Threading, Multitasking, and Asynchrony
Introduction to Parallel Programming
Task Parallelism
Implementing Data Parallelism
Using PLINQ
Section 2: Data Structures that Support Parallelism in .NET Core
Synchronization Primitives
Using Concurrent Collections
Improving Performance with Lazy Initialization
Section 3: Asynchronous Programming Using C#
Introduction to Asynchronous Programming
Async, Await, and Task-Based Asynchronous Programming Basics
Section 4: Debugging, Diagnostics, and Unit Testing for Async Code
Debugging Tasks Using Visual Studio
Writing Unit Test Cases for Parallel and Asynchronous Code
Section 5: Parallel Programming Feature Additions to .NET Core
IIS and Kestrel in ASP.NET Core
Patterns in Parallel Programming
Distributed Memory Management
Assessments
Other Books You May Enjoy
Customer Reviews