【发布时间】:2016-02-14 05:30:30
【问题描述】:
我创建了一个新的 winforms 应用程序。我正在尝试创建一个监听消息存储队列的类。
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();
}
}
}
我如何让工作人员开始在表单中运行并在它在队列中找到消息时告诉我?
当前实例化此类并在表单加载中调用 Run() 会锁定表单。
这样做的模式是什么?
【问题讨论】:
-
我很想知道您为什么要在 WinForm 应用程序中使用辅助角色。您介意描述一下您的用例吗?
-
我要做的就是在此代码在队列中看到一条消息时处理一条消息。如果我在表单加载中调用这个类,它会锁定表单。我必须需要一个异步模式来获取消息,这样表单才不会被锁定?
标签: c# azure azure-worker-roles