簡體   English   中英

在單獨的線程上消耗wcf服務

[英]consume wcf service on separate thread

我有代表簡單的wcf客戶應用程序的獲勝形式。 該客戶端通過http使用wcf服務。

表單內部有loadingLabel.Text屬性,我想在其中顯示loading ...文本。 當wcf服務返回數據時,應填充其他屬性labelAllBooksNr.Text

服務將在allBooksNumber屬性中返回整數。

 private void Form1_Load(object sender, EventArgs e)
 {
    int allBooksNumber = BookAgent.CountAllBooks();        
 }

由於我沒有使用線程的經驗,因此我要求某人提供我應該遵循的最佳模式。

可以使用的最佳模式是BackgroundWorker,因為在單獨的線程上執行操作並提供了許多方法

從MSDN

當您需要響應式UI且與此類操作相關的長時間延遲時,BackgroundWorker類提供了一種便捷的解決方案。

 namespace WindowsFormsApplication1

  {
   public partial class Form1 : Form
   {
      public Form1()
    {
        InitializeComponent();           
    }

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        int allBooksNumber = BookAgent.CountAllBooks();
        e.Result = allBooksNumber;  
    }



    private void button1_Click(object sender, EventArgs e)
    {
         backgroundWorker1.RunWorkerAsync();
         label1.Text = "Loading....";
    }

    private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        label1.Text = e.Result.ToString;  
    }
}

}”

希望這個幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM