我即将在C#中开发Windows服务。该服务需要跟踪系统中的事件,并不时向文件写入一些数据。这些正在进行的事件会形成一定的状态,所以我会将状态保存在内存中,并在事件到达时进行更新。我不想让事情过分复杂化,所以我不希望状态在磁盘上持久化,但是我想知道是否我可以以某种方式使它在内存中持久化,以便如果服务崩溃(并且自动重新启动Windows),它可以从它离开的地方继续前进(可能会失去一些事件,而不是一个大问题)。我正在考虑创建一个“共享”内存区域,从而让Windows管理它,并仅在服务中使用它 - 但我不确定在服务死后该对象会持续存在。将持久数据保存在内存中
任何想法?
编辑:我不是在寻找一种矫枉过正的解决方案。数据有点重要,所以我想保持它在内存中等待,直到服务重新启动,但数据不是太重要。如果我可以轻松地保存数据,而无需使用文件,外部第三方进程等,那么它更像是一个很好的功能。我的理想解决方案是一个简单的内置功能(在.NET或Windows中),它将为我提供一些内在的持久性,以便从崩溃事件中恢复。
结帐:['PersistentDictionary'](http://izlooite.blogspot.com/2011/04/persistent-dictionary.html)class – 2011-04-19 08:54:28