Develop powerful C# applications to take advantage of today's multicore hardwareAbout This Book
- Make use of the latest Visual Studio debugging tools, to manage and debug multiple threads running simultaneously
- Learn how to use the Thread, Task, and Parallel libraries in your C# applications
- Explore the evolution of multithreaded development in C#, starting with BackgroundWorker classes and moving on to threads and tasks and finally covering Async
Who This Book Is For
If you are a C# developer and want to learn how to take advantage of the features of .NET for concurrent and multithreaded applications, then this book is for you. If you are already comfortable with C# but want to learn more about parallel design patterns, threads, tasks, and async, then look no further!
What You Will Learn
- Explore all the essential methods used for programming multithreaded applications
- Enhance the performance of an application by designing various parallel operations to achieve concurrency
- Build powerful applications using the Task Parallel Library (TPL), which makes concurrent processing of items in a data collection simple
- Implement data parallelism using the Parallel library, concurrent collections, and PLINQ
- Debug your multithreaded applications using the Threads view, Tasks window, Parallel Stacks window, and Parallel Watch window
- Accomplish any given parallel task using two of the most popular parallel patterns for development: Pipelining and producer-consumer
- Get to grips with the Asynchronous Programming Model (APM) to learn to begin and end asynchronous operations
In Detail
Most modern machines have dual-core processors. This means that the present-day computer has the ability to multitask. Using multiple cores means your applications can process data faster and be more responsive to users. However, to fully exploit this in your applications, you need to write multithreading code.
We will begin by covering some techniques that have been around since the beginning of .NET, including the BackgroundWorker component, timers, and the Thread class. We will use tasks, task factories, and parallel loops to develop multithreaded applications at a higher level than directly creating and managing individual threads. Finally, we will look at the tools Visual Studio provides for debugging parallel applications, common concurrent design patterns, and the latest updates in PLINQ and async.
Rodney Ringler has 25 years' experience developing multitasking and parallel applications, with the last 10 focused on C# and .NET. He graduated cum laude from Clemson University with a BS degree in Computer Engineering. He then worked for 12 years in the fiber optic manufacturing industry on C-based real-time multitasking process control systems, where he went from being a developer to a project manager to an IT architect. After this, he spent 8 years running his own application development and hosting company focused on both .NET and open source technologies. He then spent several years as a consultant, working with companies in the retail, software, and manufacturing industries. Currently, Rodney works as a senior .NET developer at a manufacturing company based in Charlotte, NC, and takes .NET and object-oriented programming classes at Central Piedmont Community College. In his spare time, Rodney enjoys life in Lake Wylie, SC, with his wife and four children.
Gaston C. Hillar is Italian and has been working with computers since he was 8 years old. Gaston has a Bachelor's degree in computer science (graduated with honors) and an MBA. Currently, Gaston is an independent IT consultant and a freelance author who is always looking for new adventures anywhere in the world. He was a senior contributing editor at Dr. Dobb's, and has written more than a hundred articles on software development topics. He has received the prestigious Intel Black Belt Software Developer award eight times. He has written many articles about Java for Oracle Java Magazine. Gaston was also a former Microsoft MVP in technical computing. He lives with his wife, Vanesa, and his two sons, Kevin and Brandon.