我即將在C#中開發Windows服務。該服務需要跟蹤系統中的事件,並不時向文件寫入一些數據。這些正在進行的事件會形成一定的狀態,所以我會將狀態保存在內存中,並在事件到達時進行更新。我不想讓事情過分複雜化,所以我不希望狀態在磁盤上持久化,但是我想知道是否我可以以某種方式使它在內存中持久化,以便如果服務崩潰(並且自動重新啓動Windows),它可以從它離開的地方繼續前進(可能會失去一些事件,而不是一個大問題)。我正在考慮創建一個「共享」內存區域,從而讓Windows管理它,並僅在服務中使用它 - 但我不確定在服務死後該對象會持續存在。將持久數據保存在內存中
任何想法?
編輯:我不是在尋找一種矯枉過正的解決方案。數據有點重要,所以我想保持它在內存中等待,直到服務重新啓動,但數據不是太重要。如果我可以輕鬆地保存數據,而無需使用文件,外部第三方進程等,那麼它更像是一個很好的功能。我的理想解決方案是一個簡單的內置功能(在.NET或Windows中),它將爲我提供一些內在的持久性,以便從崩潰事件中恢復。
結帳:['PersistentDictionary'](http://izlooite.blogspot.com/2011/04/persistent-dictionary.html)class – 2011-04-19 08:54:28