2017-07-18 64 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。