.NET Framework 4 นำเนมสเปซ System.Collections.Concurrent มีคลาสคอลเล็กชันหลายคลาสที่เธรดปลอดภัยและสามารถปรับขนาดได้ คอลเล็กชันเหล่านี้เรียกว่าคอลเลกชั่นพร้อมกัน เนื่องจากสามารถเข้าถึงได้จากหลายเธรดพร้อมกัน
ต่อไปนี้เป็นคอลเลกชันที่เกิดขึ้นพร้อมกันใน C# -
Sr.No | ประเภท &คำอธิบาย |
---|---|
1 | BlockingCollection ฟังก์ชัน Bounding และ Blocking สำหรับทุกประเภท |
2 | พจนานุกรมพร้อมกัน การใช้งานพจนานุกรมของคู่คีย์-ค่าที่ปลอดภัยต่อเธรด |
3 | คิวพร้อมกัน การใช้งานคิว FIFO (เข้าก่อน ออกก่อน) แบบปลอดภัยต่อเธรด |
4 | ConcurrentStack การใช้งานสแต็ก LIFO (เข้าก่อน-ออกก่อน) อย่างปลอดภัยต่อเธรด |
5 | กระเป๋าพร้อมกัน การนำคอลเล็กชันองค์ประกอบที่ไม่เรียงลำดับไปใช้อย่างปลอดภัยต่อเธรด |
6 | IProducerConsumerCollection อินเทอร์เฟซที่ประเภทต้องใช้เพื่อใช้ใน BlockingCollection |
ให้เราดูวิธีการทำงานกับ ConcurrentStack
สร้าง ConcurrentStack
ConcurrentStack<int> s = new ConcurrentStack<int>();
เพิ่มองค์ประกอบ
s.Push(1); s.Push(2); s.Push(3); s.Push(4); s.Push(5); s.Push(6);
มาดูตัวอย่างกัน
ตัวอย่าง
using System; using System.Collections.Concurrent; class Demo{ static void Main (){ ConcurrentStack s = new ConcurrentStack(); s.Push(50); s.Push(100); s.Push(150); s.Push(200); s.Push(250); s.Push(300); if (s.IsEmpty){ Console.WriteLine("The stack is empty!"); } else { Console.WriteLine("The stack isn't empty"); } } }