Computer >> Máy Tính >  >> Lập trình >> C#

Làm cho bộ sưu tập của bạn an toàn theo chuỗi trong C #

.NET Framework 4 mang lại không gian tên System.Collections.Concurrent. Điều này có một số lớp bộ sưu tập an toàn theo luồng và có thể mở rộng. Các tập hợp này được gọi là tập hợp đồng thời vì chúng có thể được truy cập bởi nhiều chuỗi cùng một lúc.

Các kiểu thu thập đồng thời sau sử dụng cơ chế đồng bộ hóa nhẹ:SpinLock, SpinWait, v.v. Đây là những tính năng mới trong .NET Framework 4.

Hãy để chúng tôi xem tập hợp đồng thời trong C # -

Loại Mô tả
BlockingCollection Chức năng giới hạn và chặn cho bất kỳ loại nào.
ConcurrentDictionary Triển khai an toàn theo chuỗi của từ điển các cặp khóa-giá trị.
ConcurrentQueue Triển khai an toàn theo chuỗi của hàng đợi FIFO (vào trước, xuất trước).
ConcurrentStack Triển khai ngăn xếp LIFO (nhập sau cùng, xuất trước) an toàn theo chuỗi.
ConcurrentBag Triển khai an toàn theo chuỗi của một tập hợp các phần tử không có thứ tự.
IProductionerConsumerCollection Giao diện mà một loại phải triển khai để được sử dụng trong BlockingCollection

Hãy để chúng tôi xem cách làm việc với ConcurrentStack , một bộ sưu tập cuối cùng vào trước (LIFO) an toàn theo chuỗi -

ConcurrentStack<int> cs = new ConcurrentStack<int>();
cs.Push(95);
cs.Push(120);
cs.Push(130);