【发布时间】:2015-02-19 14:31:46
【问题描述】:
我想实现一个集合(List 或 Dictionary),它的条目会在一段时间后过期:当条目过期时,它应该自动从集合中删除。
我看了this question的回答,建议使用后台线程来检查和删除过期的项目。相反,this answer 中提出的解决方案涉及使用Timer。
由于Timer 是在一个单独的线程上调用的,那么就性能而言,使用第二种解决方案比第一种解决方案有什么优势?
【问题讨论】:
-
这是一个非常危险的代码,它修改了 List 而没有用锁保护它。 List 不是线程安全的,它迟早会变坏。
标签: c# .net multithreading timer