1. handler的post()方法
public
class
mainactivity
extends
activity
});
} }).start();
} }
2. view的post()方法
public
boolean
post(runnable action)
else
returnhandler.post(action);
} 3. activity的runonuithread()方法原理
public
final
void
runonuithread(runnable action)
else
} 原理都是通過handler的post方法實現的
所有的post和sendmessage方法最後都會呼叫handler.sendmessage()方法進行入隊操作,訊息佇列按照時間排序,之後使用looper.loop方法出隊,
每當有乙個訊息出隊,就將它傳遞到msg.target的dispatchmessage()方法中,msg.target其實就是handler,handlemessage方法:
public
void
dispatchmessage(message msg)
else
} handlemessage(msg);
} }
將訊息物件作為引數傳入handlemessage方法中
QT子執行緒操作UI
在qt中,子執行緒是無法直接操作ui的,否則會報錯,會出現執行緒衝突之類的錯誤。可以用兩種方法實現 1 使用訊號和操操作,子執行緒給ui所在的主線程發訊號 2 使用invokemethod方法。方法樣例如下 threadtest.h ifndef threadtest h define thread...
子執行緒更新UI
一般在winform c s程式中經常會在子執行緒中更新控制項的情況,桌面程式ui執行緒是主線程,當試圖從子執行緒直接修改控制項屬性時會出現 從不是建立控制項的執行緒訪問它 的異常提示。跨執行緒更新ui控制項的常用方法有兩種 1.使用控制項自身的invoke begininvoke方法 2.使用sy...
ADOTAble中進行查詢刪除操作
procedure tform1.button1click sender tobject var newstring string begin inputquery 輸入查詢條件 姓名為 newstring adotable1.locate sname newstring,locaseinsensi...