我正在使用C#Client for RabbitMQ。 許多示例使用Console.ReadLine()
或while(true)
來保持連接打開以使用消息。 while(true)
會燒燬CPU,並且ReadLine()
不適用於Web服務器。C#:在Web服務器上使用RabbitMQ消息
我正在使用Asp.Net核心Web服務,並試圖爲它編寫一些測試。 在我的服務器的啓動方法,我稱之爲
Task.Factory.StartNew(() =>
{
using (IConnection connection = _connectionFactory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
// configuring queue etc....
options.DeclareConsumer(queueName, MessageReceived);
ResetEvent.WaitOne();
}
}
});
我沒有在任何地方等待這個任務。因爲我希望我的網絡服務器仍然可以提供請求。
在我的集成測試,然後我就能夠停止與MailMessageQueue.ResetEvent.Set();
線程我,如果我不塊,但是是有幫助的,如果我必須阻止不需要..
我,如果我有些困惑應該阻止或不需要,我需要多少線程等。 有沒有一個有用的例子嗎?
感謝..
感謝您的快速回答。將試試這個,看起來很有前途:) – Senj