卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

子線程中開啟子線程 如何控制子線程被執(zhí)行完才執(zhí)行主線程?

如何控制子線程被執(zhí)行完才執(zhí)行主線程? 線程。連接沒關(guān)系。為什么稱之為線程隊(duì)列?線程根本不排隊(duì),執(zhí)行后會(huì)消失。但是,主線程必須阻塞等待這些連接的線程,這不會(huì)浪費(fèi)CPU。不,不,@趙杰定義一個(gè)委托回調(diào)函數(shù)

如何控制子線程被執(zhí)行完才執(zhí)行主線程?

線程。連接沒關(guān)系。為什么稱之為線程隊(duì)列?線程根本不排隊(duì),執(zhí)行后會(huì)消失。但是,主線程必須阻塞等待這些連接的線程,這不會(huì)浪費(fèi)CPU。不,不,@趙杰

定義一個(gè)委托回調(diào)函數(shù)

public delegate void callbackdelegate(字符串消息)

程序啟動(dòng)時(shí)

//將回調(diào)方法賦給委托變量

callbackdelegate CBD=callback

//start thread

thread th=new thread(fun)開始(CBD)//啟動(dòng)thread,并替換參數(shù)

//參數(shù)為委托的線程執(zhí)行方法。線程中的參數(shù)需要使用對(duì)象類型。

public void fun(object o)

{

//這是您的操作代碼,loop,根據(jù)while

while(true)

{

}

//將傳遞的參數(shù)轉(zhuǎn)換為委托

callbackdelegate CBD=O as callbackdelegate

//執(zhí)行回調(diào)。

CBD(“此線程返回的信息”

]}

]//回調(diào)方法

私有void回調(diào)(字符串消息){

//主線程報(bào)告信息,可以用來判斷和執(zhí)行不同的邏輯MessageBox.顯示(message)

}

c#子線程執(zhí)行完怎么通知主線程?

首先,子線程必須由主線程啟動(dòng),所以嚴(yán)格來說,子線程結(jié)束后不可能執(zhí)行主線程。您的意思應(yīng)該是:在主線程創(chuàng)建了子線程之后,等待子線程退出,然后繼續(xù)。代碼沒有太大問題,只是join方法的位置不正確。螺紋1。Start()//啟動(dòng)所有子線程thread2。開始()線程3。開始()線程4。開始()線程5。開始()線程1。Join()//然后等待子線程退出thread2。Join()線程3。Join()線程4。Join()線程5。Join()前面的代碼:thread1。Start()//線程1啟動(dòng)線程1。Join()//等待線程1退出。在線程1退出之前,以下代碼無法執(zhí)行線程2。start()//上面描述了下面的代碼。thread2.Join()thread3.Start()thread3.Join()thread4.Start()thread4.Join()