2016-02-14 106 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

查看它,嘗試一些內容,然後發佈另一個堆棧溢出問題,解決遇到的任何新問題。 –