C 子執行緒執行完後通知主線程的方法

2021-09-12 18:39:27 字數 1419 閱讀 8679

怎麼讓子執行緒去做主執行緒的事兒呢,我們只需要把主線程的方法傳遞給子執行緒就行了,那麼傳遞方法就很簡單了委託傳值嘛;

下面有乙個例子,子執行緒幹一件事情,做完了通知主線程

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檔案進行計算要用較長的時間,主介面會有很長時間的卡頓,造成的使用者感受十分不好,因此我想在呼叫時,將呼叫放入子執行緒中,然後在主線程中彈出乙個提示框,顯示資料正在載入,等子執行緒執行結束後,主線程繼續工作。使用的是中...