面試 子執行緒一定不能更新UI?

2021-07-30 07:47:24 字數 384 閱讀 9436

面試:子執行緒一定不能更新ui?這種說法顯然是不嚴謹的。

在主線程更新ui的方法:

1.使用activity的runonuithread方法更新ui,無論當前執行緒是否是主線程,都將在主線程執行

runonuithread(new runnable() 

});

2.使用handler直接post到主線程(handler需要在主線程建立)

//延遲3秒執行runnable

mhandler.postdelayed(new runnable()

}, 1000*3);

應用場景:延時啟動,廣告展示後,做頁面跳轉。

子執行緒更新UI

一般在winform c s程式中經常會在子執行緒中更新控制項的情況,桌面程式ui執行緒是主線程,當試圖從子執行緒直接修改控制項屬性時會出現 從不是建立控制項的執行緒訪問它 的異常提示。跨執行緒更新ui控制項的常用方法有兩種 1.使用控制項自身的invoke begininvoke方法 2.使用sy...

Android之在子執行緒更新UI 一

方法一 用handler 1 主線程中定義handler handler mhandler new handler 2 子執行緒發訊息,通知handler完成ui更新 private void updateweather start 方法一的handler物件必須定義在主線程中,如果是多個類直接互相...

Qt子執行緒如何更新UI?

和其他語言類似,不能直接在子執行緒更新ui,可以通過signal slot機制在ui執行緒進行更新。signal slot機制可以在不同物件,不同執行緒之間進行通訊。例子 include mainwindow.h include include class mythread public qthre...