第一種:handler機制
在子執行緒中建立handler,並把此handler的looper與主線程ui執行緒繫結在一塊,這樣它就和ui執行緒公用乙個訊息佇列messagequeue(looper物件裡面有訊息佇列成員),
在將改變主線程的**通過runnable介面提交給主線程執行;
例子:
thread t = new thread()
});}
};t.start();
第二種:activity的方法runonuithread(new runnable())
使用相對於前面一種更簡單,實現原理:如果當前執行緒是ui執行緒,立即執行;否者通過第一種方式提交給ui執行緒
第三種:asynctask,輕量級的非同步操作,定義三個引數:入參、進度和返回結果;
使用方法:
編寫乙個類繼承該類,重寫其父類方法:
doinbackground就是後台其他執行緒執行的方法,可以通過其他放回獲取其執行結果
具體檢視本主人其他部落格
C 子執行緒改變UI的方法
相信許多人在使用winform時候經常會遇到在自己新起乙個執行緒test 稱為輔助線程 當在test中要修改主介面的一些內容時,經常會出現一些異常,具體什麼型別異常不做解釋,直說解決方法 code public partial class test form public void test pub...
子執行緒更新UI
一般在winform c s程式中經常會在子執行緒中更新控制項的情況,桌面程式ui執行緒是主線程,當試圖從子執行緒直接修改控制項屬性時會出現 從不是建立控制項的執行緒訪問它 的異常提示。跨執行緒更新ui控制項的常用方法有兩種 1.使用控制項自身的invoke begininvoke方法 2.使用sy...
子執行緒與UI執行緒的通訊 委託
由於專案中存在這樣的載入的畫面 在介面上有顯示載入資訊的 label 控制項和進度條,如果採用單執行緒則在載入資料的時候 ui介面會被鎖死,造成假死的感覺。為了給乙個更友好的介面,因此有必要引入多執行緒技術,使得軟體更加 人性化 但隨後在子執行緒中訪問介面上的控制項的時候會出現異常,不能操作主線程所...