![](https://csdnimg.cn/release/download_crawler_static/10369124/bg13.jpg)
Free ebooks ==> www.ebook777.com
Preface
[ 2 ]
What this book covers
Chapter 1, Understanding Multiprocessing and Multiple Cores, covers the evolution
of computer hardware from single-processor systems to multiprocessor and
multiple-core systems. It will also discuss how the Windows Scheduler allots time
to threads. This chapter then discusses design considerations for concurrency,
how to take advantage of multiprocessor/multiple core systems, and the expected
performance improvements these designs can realize. During this chapter, we will
walk through a simple single-threaded and then multithreaded example to show
how performance is improved.
Chapter 2, Looking at Multithreaded Classes – BackgroundWorker, enables us to examine
the basics of multithreaded programming with the BackgroundWorker class. We
will go through a WPF example showing how we can update a UI while processing
is going on in the background. This chapter will discuss the basics of coordinating
work between multiple processes and the concept of concurrency.
Chapter 3, Thread Class – Heavyweight Concurrency in C#, allows us to examine and
work with the Thread class and namespace. We will learn how to create threads,
coordinate between threads, share data between threads, and stop threads. This
chapter will explore the idea of heavyweight concurrency versus lightweight
concurrency, which will be explained in detail later in the book. We will focus on
manually using and coordinating multiple threads in an application.
Chapter 4, Advanced Thread Processing, explains in detail the concept of heavyweight
concurrency and working with multiple threads using the Thread class. This
chapter will further expand the image processing application to demonstrate
how to coordinate between threads and wait on threads to complete by avoiding
deadlocks, locking, and error handling. This chapter will leave the reader with a
clear understanding of how to develop applications with multiple threads and have
complete control over their execution and interaction.
Chapter 5, Lightweight Concurrency – Task Parallel Library (TPL), introduces the Task
Parallel Library and the next evolution of multithreaded programming in C#/.NET.
Now that we have a full understanding of how to develop, manage, and control
applications with many threads, we will learn how to take advantage of the Parallel
namespace in .NET to do a lot of the heavy lifting for us. We will introduce the
idea of lightweight concurrency by leveraging the Parallel classes that .NET now
provides. This will allow us to focus more on designing an efcient and powerful
application and less on coordinating individual threads.
Chapter 6, Task-based Parallelism, enables us to examine the Task Parallel Library
and task parallelism. A task is an asynchronous set of operations that can be run
concurrently with other tasks. We will examine designing an application as a
www.it-ebooks.info
www.ebook777.com