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