.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");
}
}
}