我已经创建了一个新的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