1
我有一个Windows服务使用System.Collections.Generic.Queue保留一些我将处理的文件。队列持久性.Net
问题是当我的服务失败时,如果我重新启动服务,它会丢失需要处理的文件。
我怎么能坚持我的队列?我在想是否可以序列化队列并将其写入文件中。你怎么看?
我有一个Windows服务使用System.Collections.Generic.Queue保留一些我将处理的文件。队列持久性.Net
问题是当我的服务失败时,如果我重新启动服务,它会丢失需要处理的文件。
我怎么能坚持我的队列?我在想是否可以序列化队列并将其写入文件中。你怎么看?
虽然序列化队列为@the_joric说我也是一个很好的解决方案,据我所知,微软消息队列(MSMQ)会工作得更好,并且配合好我的情况。
您可串行队列:
var queue = new Queue<string>();
queue.Enqueue("234");
queue.Enqueue("234");
var dataContractSerializer = new DataContractSerializer(typeof (Queue<string>));
const string outputFileName = "myfile.xml";
using (var xmlWriter = XmlWriter.Create(outputFileName))
{
dataContractSerializer.WriteObject(xmlWriter, queue);
}
var savedContent = File.ReadAllText(outputFileName);
Console.Out.WriteLine("savedContent = {0}", savedContent);
使用MSMQ怎么样? – mslot 2012-02-17 10:48:07
速度快吗? @mslot – 2012-02-17 10:50:26
@mslot嘿谢谢,我会研究它。一些相关内容:[链接](http://msdn.microsoft.com/en-us/library/ms978430.aspx)和[链接(http://www.codeproject.com/Articles/3944/Programming-MSMQ- in-NET-Part-1)和第2部分 - [链接](http://www.codeproject.com/Articles/4348/Programming-MSMQ-in-NET-Part-2-Transactional-Messa) – 2012-02-17 10:55:14