PeekCompleted를 사용하여 MessageQueue에서 메시지를 읽는 중입니다. 여기에서 프로세스를 수행하고 모든 것이 제대로 수행되면 큐에서 제거해야합니다! currenty 나는 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();
}
}