1
私はバス上で非同期メッセージングが必要です。ServiceBusでBeginReceiveとEndReceiveを使用したメッセージングが機能しません
これは私が使用しているコードです:ここでは
//set callback to get the message
MessageReceiver messageReceiver = MessagingFactory.CreateMessageReceiver(BaseTopicName + "/subscriptions/" + addressee,
ReceiveMode.PeekLock);
IAsyncResult result = messageReceiver.BeginReceive(AsyncGet, messageReceiver);
Debug.WriteLine("After BeginReceive");
// Wait for the WaitHandle to become signaled.
Thread.Sleep(0);
result.AsyncWaitHandle.WaitOne();
// Close the wait handle.
result.AsyncWaitHandle.Close();
//return the information
Debug.WriteLine("return the information");
がAsyncGetです:
public void AsyncGet(IAsyncResult result)
{
Debug.WriteLine("Start AsyncGet");
MessageReceiver messageReceiver = result.AsyncState as MessageReceiver;
BrokeredMessage = messageReceiver.EndReceive(result);
Debug.WriteLine("Finish AsyncGet");
messageReceiver.Close();
}
私が手出力は次のようになります。
After BeginReceive
return the information
Start AsyncGet
Finish AsyncGet
それはラインと言いますresult.AsyncWaitHandle.WaitOne(); AsyncGetのスレッドが終了するまで実行を停止しませんでした。 ここで間違っていることを教えてください。 ありがとう!