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

Using ConcurrentStack

In this section, we are going to experiment with BlockingCollection<T> and ConcurrentStack<T>. In the first example in this chapter, we used BlockingCollection<T> to read the words that started with a specific letter from the book Ulysses. We are going to make a copy of that project and change the code that reads the lines of text to use ConcurrentStack<T> inside BlockingCollection<T>. This will make the lines output in reverse order because a stack uses last in, first out (LIFO) logic. Let’s get started!

  1. Make a copy of the ParallelExtras.BlockingCollection project from this chapter or modify the existing project if you prefer.
  2. Open MainWindow.xaml.cs and modify the LoadBookLinesFromFile method to pass a new ConcurrentStack<string> to the constructor of BlockingCollection<string>:
    private async Task<BlockingCollection<string>> 
        LoadBookLinesFromFile()
    {
      ...
lock icon The rest of the chapter is locked
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 ₹800/month. Cancel anytime}