C# 如何对大列表的内容实现生存时间功能

C# How to implement a Time To Live function to a big list's content

我正在构建一个侦听 Wamp 协议消息并将它们存储在 List<MySpecialClass> 中的应用程序。坦率地说,由于流量非常大(一两分钟内大约有 1-1500 条消息),我想实施某种方法来自动清除此列表中已终止的条目。

我的想法是为 MySpecialClass 提供一个 System.Diagnostics.Stopwatch isTerminated 字段。接收到某个条目已终止的 Wamp 消息将 运行 一个 isTerminated.StartNew()。通过 List<MySpecialClass> 的常规(但频率远低于 60 秒)循环将确保 List.Remove() 具有 isTerminated.ElapsedMilliseconds>60000 的任何 MySpecialClass

我应该注意,由于一些复杂的东西,终止的条目可以用另一个 Wamp 消息再次恢复,根据我的想法,这将调用 isTerminated.Reset().

我会继续做,但我是新手,我不确定 System.Diagnostics.Stopwatch 会给自己带来什么样的麻烦。它会减少我的内存使用量还是增加它?

我很想听听对我正在考虑的这种方法的反馈,以及关于应该如何清理列表的一些建议。干杯!

编辑

我想我容易想太多问题,很抱歉给您带来麻烦。评论中的 Pikoh 的想法正是我所需要的。

原来我可以在我的 class 中添加一个时间戳字段,它会显示消息何时终止并检查它,这比我的想法稍微好一点。谢谢皮科。