我正在构建一个应用程序,它监听Wamp协议消息并将它们存储在List<MySpecialClass>
中。由于流量非常坦率地说是疯狂的(大约在一两分钟内有大约1-1.5万条消息),我想实现一些自动清除已终止条目的清单。C#如何实现一个生存时间功能的大列表内容
我的想法是为MySpecialClass
提供一个System.Diagnostics.Stopwatch isTerminated
字段。收到一条Wamp消息,表明某个条目已终止,将运行isTerminated.StartNew()
。并且通过List<MySpecialClass>
的常规(但比60s少得多的频率)循环将确保List.Remove()
具有isTerminated.ElapsedMilliseconds>60000
的任何MySpecialClass
。
我应该注意到,由于一些复杂的东西,被终止的条目可以再次用另一个Wamp消息恢复,根据我的想法,这个消息将被称为isTerminated.Reset()
。
我会继续这样做,但我是新来的,我不知道我在使用System.Diagnostics.Stopwatch时遇到了什么样的麻烦。它会削减我的内存使用量还是增加它?
我很想听听有关此方法的反馈,我正在考虑以及关于如何清理其清单的一些建议。干杯!
编辑
我想我容易出现问题得太多,对不起你的麻烦。皮科在评论中的想法是我所需要的。
它诚实地取决于你如何实现这一点。尽管没有任何基本的例子或具体的问题,但这个网站的问题有点过于宽泛。也许[编辑]到目前为止您尝试过的[mcve]? – gravity
就是这样,我只是在考虑在这一点上做什么。我无法围绕如何处理这个问题。当然,在我的任何尝试中肯定会编辑。 –
可能有很多方法来实现这一点。但首先想到的是,当接收到Wamp消息时,只需在类中存储时间戳,然后在另一个计时器/循环中检查该时间戳是否已过期? – Pikoh