程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 控件-C#多線程必須加Thread.Sleep()語句麼?

控件-C#多線程必須加Thread.Sleep()語句麼?

編輯:編程綜合問答
C#多線程必須加Thread.Sleep()語句麼?

a= new Thread(new ThreadStart(delegate { ThreadMethod(); }));
a.Start();
如題,我采用這個方法開啟子線程,然後在子線程中執行耗時的代碼,並且調用委托來更新UI界面控件。
但是我發現一個問題就是:比如我在代碼裡寫了往textBox裡面添加一些字符串,然後後面接著執行耗時的代碼。我發現只有當整個代碼執行完了,textBox裡才會顯示添加的數據。但是如果在每條往textBox裡添加數據的後面加一句Thread.Sleep()語句,就可以看到是先往textBox裡添加的數據了。這點我覺得很奇怪啊,以前安卓開發也遇到過這樣的事情,就是往控件裡添加數據展示給用戶看,如果不加Threa.Sleep()語句的話,就得等數據全部添加完畢之後才能看到,而不是添加一句顯示一句,為什麼啊?

最佳回答:


小伙子,在工作線程中去刷新UI,就是調用UI線程的東西的話,如果你想要做到同步的效果,可以使用Invoke就可以。異步效果的話,就是BeginInvoke,至於怎麼調用,不用我舉例子吧。
http://wenku.baidu.com/link?url=hz6vSo2MVAX9NLB4LjSq_ajQg-EVQMsbOpVid-ut3aSxn0_3Vj_yjoUtV8RgkCg2SaZjFSMloxQon5LDEfu7kRQaKXNAG-GsTeCscmZIoQu

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