Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Parallel Programming and Concurrency with C# 10 and .NET 6

You're reading from  Parallel Programming and Concurrency with C# 10 and .NET 6

Product type Book
Published in Aug 2022
Publisher Packt
ISBN-13 9781803243672
Pages 320 pages
Edition 1st Edition
Languages
Author (1):
Alvin Ashcraft Alvin Ashcraft
Profile icon Alvin Ashcraft

Table of Contents (18) Chapters

Preface 1. Part 1:Introduction to Threading in .NET
2. Chapter 1: Managed Threading Concepts 3. Chapter 2: Evolution of Multithreaded Programming in .NET 4. Chapter 3: Best Practices for Managed Threading 5. Chapter 4: User Interface Responsiveness and Threading 6. Part 2: Parallel Programming and Concurrency with C#
7. Chapter 5: Asynchronous Programming with C# 8. Chapter 6: Parallel Programming Concepts 9. Chapter 7: Task Parallel Library (TPL) and Dataflow 10. Chapter 8: Parallel Data Structures and Parallel LINQ 11. Chapter 9: Working with Concurrent Collections in .NET 12. Part 3: Advanced Concurrency Concepts
13. Chapter 10: Debugging Multithreaded Applications with Visual Studio 14. Chapter 11: Canceling Asynchronous Work 15. Chapter 12: Unit Testing Async, Concurrent, and Parallel Code 16. Assessments 17. Other Books You May Enjoy

Handling threading exceptions

There are a couple of exception types that are specific to managed threading, including the ThreadInterruptedException exception that we covered in the previous section. Another exception type that is specific to threading is ThreadAbortException. However, as we discussed in the previous section, Thread.Abort is not supported in .NET 6, so, although this exception type exists in .NET 6, it is not necessary to handle it, as this type of exception is only possible in .NET Framework applications.

Two other exceptions are the ThreadStartException exception and the ThreadStateException exception. The ThreadStartException exception is thrown if there is a problem starting the managed thread before any user code in the thread can be executed. The ThreadStateException exception is thrown when a method on the thread is called that is not available when the thread is in its current ThreadState property. For example, calling Thread.Start on a thread that has already started is invalid and will cause a ThreadStateException exception. These types of exceptions can usually be avoided by checking the ThreadState property before acting on the thread.

It is important to implement comprehensive exception handling in multithreaded applications. If code in managed threads begins to fail silently without any logging or causing the process to terminate, the application can fall into an invalid state. This can also result in degrading performance and unresponsiveness. While this kind of degradation might be noticed quickly for many applications, some services, and other non-GUI-based applications, could continue for some time without any issues being noticed. Adding logging to the exception handlers along with a process to alert users when logs are reporting failures will help to prevent problems with undetected failing threads.

In the next section, we’ll discuss another challenge with multithreaded code: keeping data in-sync across multiple threads.

You have been reading a chapter from
Parallel Programming and Concurrency with C# 10 and .NET 6
Published in: Aug 2022 Publisher: Packt ISBN-13: 9781803243672
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}