メッセージを非同期メソッドで受信したいだけです。私のUIがフリーズしていますMessageQueueとAsync/Await
public async void ProcessMessages()
{
MessageQueue MyMessageQueue = new MessageQueue(@".\private$\MyTransactionalQueue");
MyMessageQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
while (true)
{
MessageQueueTransaction MessageQueueTransaction = new MessageQueueTransaction();
MessageQueueTransaction.Begin();
ContainError = false;
ProcessPanel.SetWaiting();
string Body = MyMessageQueue.Receive(MessageQueueTransaction).Body.ToString();
//Do some process with body string.
MessageQueueTransaction.Commit();
}
}
私はちょうど通常の方法のようにメソッドを呼び出しています! このコードは、async/awaitの代わりにBackgroundWorkersを使用していたときに使用されました。
アイデア?
コードで警告が生成されていますか?彼らが言うことを読んで理解してみましたか? – svick
エラーリストを見ると、「この非同期メソッドはオペレータを待っていて、同期して実行されていません」と表示されます。 –
これはローカライズされた質問ではありません。彼らのメソッドを非同期的に実行させます –