我已經創建了一個新的winforms應用程序。我正在嘗試創建一個偵聽存儲隊列中的消息的類。以Win表單參與Azure工作者角色後臺服務
using System;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
using System.Threading;
using Microsoft.WindowsAzure.ServiceRuntime;
using System.Configuration;
namespace PMonitor
{
public class QueueWorker : RoleEntryPoint
{
public override void Run()
{
CloudQueue queue = clnt.GetQueueReference("stuff");
while (true)
{
CloudQueueMessage qMessage = null;
do
{
qMessage = queue.GetMessage(TimeSpan.FromSeconds(10));
if (qMessage != null)
{
//handle message
}
}
while (qMessage != null);
Thread.Sleep(10000);
}
}
public override bool OnStart()
{
return base.OnStart();
}
}
}
我如何讓工作人員開始在窗體中運行並運行,並在隊列中找到消息時告訴我?
當前實例化這個類並在Form Load中調用Run()會鎖定表單。
這樣做的模式是什麼?
我很想知道爲什麼要在WinForm應用程序中使用工作者角色。你介意描述你的用例嗎? –
我想要做的就是當這段代碼在隊列中看到一條消息時處理消息。如果我在表單加載中調用這個類,它將鎖定表單。我必須使用異步模式來獲取消息,以便表單不鎖定? – nlstack01