跟踪元素成为列表一部分的时间最简单的方法是什么?例如,我想在添加2分钟后从列表中弹出一个元素。
我是否必须创建两个列表,一个包含实际元素,另一个包含元素添加到列表的时间?然后检查“时间”列表,以便知道它何时达到两分钟?
我觉得这是一种更简单有效的方法,但我现在想不到它......
答案 0 :(得分:5)
如果您希望编写最少量的代码,可以查看实现过期策略的MemoryCache类。
使用CacheItemPolicy,您甚至可以在到期后删除项目时执行回调方法。
答案 1 :(得分:3)
您可以使用包含元素及其存储时间的包装类,而不是直接在列表中存储元素,而是存储包装类的实例。
你可能想要使用队列而不是列表;你将从前面删除很多项目,这对于队列而言比列表更有效。
检查队列的频率是您需要决定的。你可以使用一个单独的线程来经常检查,在这种情况下你可能想要使用ConcurrentQueue<T>