计算元素在列表中的持续时间

时间:2013-04-23 08:18:22

标签: c# unity3d

跟踪元素成为列表一部分的时间最简单的方法是什么?例如,我想在添加2分钟后从列表中弹出一个元素。

我是否必须创建两个列表,一个包含实际元素,另一个包含元素添加到列表的时间?然后检查“时间”列表,以便知道它何时达到两分钟?

我觉得这是一种更简单有效的方法,但我现在想不到它......

2 个答案:

答案 0 :(得分:5)

如果您希望编写最少量的代码,可以查看实现过期策略的MemoryCache类。

使用CacheItemPolicy,您甚至可以在到期后删除项目时执行回调方法。

答案 1 :(得分:3)

您可以使用包含元素及其存储时间的包装类,而不是直接在列表中存储元素,而是存储包装类的实例。

你可能想要使用队列而不是列表;你将从前面删除很多项目,这对于队列而言比列表更有效。

检查队列的频率是您需要决定的。你可以使用一个单独的线程来经常检查,在这种情况下你可能想要使用ConcurrentQueue<T>