我正在使用PeekCompleted從MessageQueue中讀取消息,我在此處執行我的過程,如果一切正常,我需要將它從隊列中刪除!目前我正在使用MyMessageQueue.Receive(),它的工作原理,但這是確保每條消息將被正確處理的可靠方法?在PeekCompleted方法中從messageQueue中退出
MessageQueue MyMessageQueue;
public Form1()
{
InitializeComponent();
MyMessageQueue = new MessageQueue(@".\private$\Dms");
MyMessageQueue.PeekCompleted += new PeekCompletedEventHandler(MessageQueue_PeekCompleted);
MyMessageQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
MyMessageQueue.BeginPeek();
}
void MessageQueue_PeekCompleted(object sender, PeekCompletedEventArgs e)
{
try
{
Debug.WriteLine("ToProcess:" + e.Message.Body);
//Long process that maybe fail
MyMessageQueue.Receive();
}
finally
{
MyMessageQueue.BeginPeek();
}
}