2

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

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

我有一种感觉有一种更简单有效的方法来做到这一点,但我现在想不出......

4

2 回答 2

5

如果你想写最少的代码,你可以看看MemoryCache类,它实现了过期策略。

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

于 2013-04-23T08:21:51.243 回答
3

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

您可能希望使用队列而不是列表;您将从前面删除很多项目,这对于队列来说比使用列表更有效。

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

于 2013-04-23T08:21:43.740 回答