我正在構建一個應用程序,它監聽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