2016-02-14 102 views
1

我正在运行下面的代码,它锁定了我的Win窗体。我试图完成的是在窗体出现时显示队列消息。收听Azure队列消息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

你会想要以某种方式使用多线程,否则你发布的代码将“锁定”UI线程直到它完成。我会建议使用Async/Await,但也可以使用BackgroundWorker或新线程。

此外,“Thread.Sleep”在这种情况下使用相当糟糕,因为您拥有它,它会冻结UI线程10秒!

+0

你能分享一个如何实现这个目标的例子吗? – nlstack01

+0

查看它,尝试一些内容,然后发布另一个堆栈溢出问题,解决遇到的任何新问题。 –