怎麼讓子執行緒去做主執行緒的事兒呢,我們只需要把主線程的方法傳遞給子執行緒就行了,那麼傳遞方法就很簡單了委託傳值嘛;
下面有乙個例子,子執行緒幹一件事情,做完了通知主線程
public
class
program
private
static
void
fun(
object obj)
次",i)
; thread.
sleep
(500);
}entrust callback = obj as entrust;
//強轉為委託
callback
("我是子執行緒,我執行完畢了,通知主線程");
//子執行緒的迴圈執行完了就執行主線程的方法
}//主線程的方法
private
static
void
callback
(string str)
}
上面就是乙個通過委託進行向主線程傳值(也就是通知主線程)的過程,上面我們是自己定義了乙個委託,當然我們也可以使用.net
為我們提供的action<>
和fun<>
泛型委託來處理,就像這樣
public
class
program);
//lamuda表示式
thread th =
newthread
(fun)
; th.isbackground =
true
; th.
start
(callback)
; console.
readkey()
;}private
static
void
fun(
object obj)
次",i)
; thread.
sleep
(500);
} action<
string
> callback = obj as action<
string
>
;callback
("我是子執行緒,我執行完畢了,通知主線程");
}}//上面的lamuda表示式也可以回城匿名函式
//actioncallback = delegate(string str) ;
下面是執行結果
Handler 主線程如何通知子執行緒
在 android 中,不可以在子執行緒中更新 ui 的操作,否則會報錯或者異常資訊。在這種情況下,我們會使用 handler 在 ui 執行緒建立該物件 接收子執行緒的訊息更新 ui.可見,此時的 handlemessage 是在主線程中執行的。每個主線程預設有乙個 looper,也就是說在主線程...
Handler 主線程如何通知子執行緒
在 android 中,不可以在子執行緒中更新 ui 的操作,否則會報錯或者異常資訊。在這種情況下,我們會使用 handler 在 ui 執行緒建立該物件 接收子執行緒的訊息更新 ui.可以看出,這是子執行緒通知主線程,而主線程沒有直接通知子執行緒,那麼我們如何做到這一點?這樣有什麼好處?好處,很明...
C 主線程等待子執行緒執行結束
佐左佑右 原文 c 主線程等待子執行緒執行結束 由於主程式中呼叫matlab的dll檔案進行計算要用較長的時間,主介面會有很長時間的卡頓,造成的使用者感受十分不好,因此我想在呼叫時,將呼叫放入子執行緒中,然後在主線程中彈出乙個提示框,顯示資料正在載入,等子執行緒執行結束後,主線程繼續工作。使用的是中...