Ich verwende Implementierung Phase dieser URL how-can-i-read-messages-from-a-queue-in-parallel, es funktioniert gut, wenn ich vorher verwendet habe, nach einiger Zeit funktioniert es nicht, ich weiß nicht ' Verstehst du nicht, was passiert? Nachdem ich Zeit verbracht habe, schließe ich das Programm bei einer bestimmten Methode ab.Task.StartNew.ReceiveAsync() funktioniert nicht richtig beim Empfang von Nachrichten von MSMQ
/// <summary>
/// APM -> TAP conversion for MessageQueue.Begin/EndPeek.
/// </summary>
private static Task<Message> PeekAsync(MessageQueue messageQueue)
{
return Task.Factory.FromAsync(messageQueue.BeginPeek(), messageQueue.EndPeek);
}
, wenn ich diese Implementierung kommentieren Sie auf RunAsync()
Verfahren und ReceiveAsync()
Methode
/// <summary>
/// APM -> TAP conversion for MessageQueue.Begin/EndReceive.
/// </summary>
private static Task<Message> ReceiveAsync(MessageQueue messageQueue, TimeSpan timeout)
{
return Task.Factory.FromAsync(messageQueue.BeginReceive(timeout), messageQueue.EndPeek);
}
dann Programm beenden, gibt Aufruf ist keine Ausnahme, weder irgend etwas geschehen. Einfach Programm ist beendet.
aus meiner Perspektive Task.Factory.FromAsync()
ist ein Grund, aber nicht uncertand warum?
Wenn ich die gleiche Warteschlange mit dem Empfang von Nachrichten als BeginReceive()
Eventhandler verwende, funktioniert es OK. Wie erkenne ich das?
Sie auf UnhandledException abonnieren können für aktuelle 'AppDomain' – VMAtm