程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Task(TPL)簡單的實現Winform(WPF)異步

Task(TPL)簡單的實現Winform(WPF)異步

編輯:C#入門知識

 

  很多時候,我們要實現Winform異步操作,你可以用傳統的方法,但個人感覺代碼不好理解,而且使用真有點不舒服。也可以用Task來實現,Task(.net4.0新添加的對象)其實就是對線程池線程的一個封裝,裡面功能比較多,也比較好操作,其他的不多講,今天只講異步操作,舉個簡單的例子吧:

  先上個圖:單擊Go按鈕,數字自動增加,比較簡單。

        

 直接上代碼:

               CancellationTokenSource cts = ;
          
            
              
             taskScheduler =  
         
           UpdateText(               (                 btnTask.Invoke( Action<>             
                 btnTask.Text =  
                        Thread thread =  Thread(() =>
                   ( i = ; ; i++                      Thread.Sleep(    
34   
         
                         (cts ==                   cts =  
                 Task.Factory.StartNew(() =>
                       ( i = ; ; i++                          Thread.Sleep( 
                 
                         Task.Factory.StartNew(() =>
                              btnTask.Text =          
     
           btnTask_Click(              
       }

如果是在WPF當中,傳統的方法還得改點代碼,而用Task不需要修改代碼,TaskScheduler.FromCurrentSynchronizationContext()能夠獲取當前是Winform線程還是WPF線程,而且傳統方法中UpdatText方法老覺得看著有點別扭,用Task只需在Task中再開啟一個Task即可。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved