我正在运行下面的代码,它正在锁定我的Win Form。我想要完成的是在一个可用时在表单上显示一个队列消息。
这是我收听队列的代码
public void RunListener()
{
CloudQueue queue = clnt.GetQueueReference("products");
while (true)
{
CloudQueueMessage qMessage = null;
do
{
qMessage = queue.GetMessage(TimeSpan.FromSeconds(10));
if (qMessage != null)
{
//handle message
}
}
while (qMessage != null);
Thread.Sleep(10000);
}
}
如何使用它来获取消息然后处理它而不锁定表单?
答案 0 :(得分:0)
您希望以某种方式使用多线程,否则您发布的代码将会锁定" UI线程直到完成。我建议使用Async / Await,但也可以使用BackgroundWorker或新线程。
此外," Thread.Sleep"在这种情况下使用是非常糟糕的,因为你拥有它,它将冻结UI线程10秒!