2013-09-26 122 views
8

Xin chào, tôi đang thực hiện một số nghiên cứu sau một từ điển đồng thời với các tính năng hết hạn.Từ điển đồng thời hết hạn

Chúng tôi có một danh sách các đối tượng được truy cập có thêm và xóa khỏi nhiều chủ đề khác nhau. Chúng tôi cũng muốn thời gian hết hạn đối với các mục như cho phép nói 60 giây. (Sẽ thật tuyệt nếu chúng tôi có thể nghe trên một sự kiện cho chúng tôi biết những mục nào đã hết hạn và bị xóa khỏi danh sách).

Chúng tôi cũng cần tìm kiếm rất nhanh như một Từ điển.

Danh sách sẽ tiếp tục phát hiện ra hàng nghìn đối tượng.

Vì vậy, nó giống như một ConcurrentDictionary nhưng với các tính năng hết hạn.

MemoryCache có thể là gì đó không?

Hoặc chúng là những thứ khác để xem xét?

+0

Bạn đã cân nhắc sử dụng lớp ['Cache'] (http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx) chưa? (sửa) Không, 'MemoryCache' chính là thứ bạn cần, tôi không đọc kỹ câu hỏi của bạn. – Groo

+0

@Groo: OP hỏi về MemoryCache có hiệu quả giống như Cache mà không phụ thuộc vào System.Web.dll – spender

+0

@spender: oh, đúng, tôi chỉ đọc phần đầu của câu trả lời và giả sử OP muốn mã nó từ đầu. – Groo

Trả lời

9

MemoryCache trông lý tưởng, đặc biệt là khi

loại này là chủ đề an toàn.

+0

+1. Nó cũng [hỗ trợ hết hạn] (http://msdn.microsoft.com/en-US/library/system.runtime.caching.cacheitempolicy.absoluteexpiration.aspx) [với thông báo] (http://msdn.microsoft.com/ en-US/library/system.runtime.caching.cacheitempolicy.updatecallback.aspx). –

+0

Câu hỏi đặt ra là thực sự nhanh chóng thêm và xóa? – NPehrsson

+0

@NPehrsson Tôi nghĩ bạn sẽ phải tự mình kiểm tra. – spender