2013-09-26 7 views
8

Witam Robię badania po równoczesnym słowniku z funkcjami wygasania.Wygasający słownik współbieżny

Mamy listę obiektów, do których dostęp uzyskuje się po dodaniu i usunięciu z wielu różnych wątków. Chcemy również, aby czas wygaśnięcia przedmiotów był taki, powiedzmy 60 sekund. (Byłoby miło, gdybyśmy mogli nasłuchiwać na wydarzeniu, które mówi nam, które przedmioty wygasły i zostały usunięte z listy).

Potrzebujemy również, aby wyszukiwanie było naprawdę szybkie jak słownik.

Lista będzie kontynuowana houndred tysięcy obiektów.

Tak samo jak ConcurrentDictionary, ale z funkcjami wygasania.

Czy MemoryCache może być czymś?

A może są inne rzeczy, na które należy patrzeć?

+0

Czy rozważałeś użycie klasy ['Cache'] (http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx)? (edytuj) Nie, 'MemoryCache' jest dokładnie tym, czego potrzebujesz, nie przeczytałem dokładnie twojego pytania. – Groo

+0

@Groo: OP pyta o MemoryCache, który jest faktycznie taki sam jak Cache bez zależności od System.Web.dll – spender

+0

@spender: oh, racja, właśnie przeczytałem początek odpowiedzi i domniemany OP chce, by zakodować to od zera. – Groo

Odpowiedz

9

MemoryCache wygląda idealny, zwłaszcza

Ten typ jest bezpieczeństwo wątków.

+0

+1. Również [obsługuje wygaśnięcie] (http://msdn.microsoft.com/en-US/library/system.runtime.caching.cacheitempolicy.absoluteexpiration.aspx) [z powiadomieniem] (http://msdn.microsoft.com/ en-US/library/system.runtime.caching.cacheitempolicy.updatecallback.aspx). –

+0

Pytanie brzmi, czy to naprawdę szybkie dodawanie i usuwanie? – NPehrsson

+0

@NPehrsson Myślę, że będziesz musiał sam to sprawdzić. – spender