2017-07-18 28 views
0

我正在构建一个应用程序,它监听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时遇到了什么样的麻烦。它会削减我的内存使用量还是增加它?

我很想听听有关此方法的反馈,我正在考虑以及关于如何清理其清单的一些建议。干杯!

编辑

我想我容易出现问题得太多,对不起你的麻烦。皮科在评论中的想法是我所需要的。

+1

它诚实地取决于你如何实现这一点。尽管没有任何基本的例子或具体的问题,但这个网站的问题有点过于宽泛。也许[编辑]到目前为止您尝试过的[mcve]? – gravity

+0

就是这样,我只是在考虑在这一点上做什么。我无法围绕如何处理这个问题。当然,在我的任何尝试中肯定会编辑。 –

+1

可能有很多方法来实现这一点。但首先想到的是,当接收到Wamp消息时,只需在类中存储时间戳,然后在另一个计时器/循环中检查该时间戳是否已过期? – Pikoh

回答

0

原来,我可以在我的课堂中添加一个时间戳字段,这将显示消息何时终止并检查,这比我的想法略好。感谢Pikoh。

相关问题