c# 多线程:主线程执行,需要两个子线程完成,才能继续。

主线程要完成执行的话,需要两个子线程都返回结果之后,才能继续。请高手指点,提供一个思路。我想定义一个委托,委托调用两个方法,不知道这个思路是否可以?... 主线程要完成执行的话,需要两个子线程都返回结果之后,才能继续。请高手指点,提供一个思路。我想定义一个委托,委托调用两个方法,不知道这个思路是否可以? 展开
 我来答
师峭都cC
2019-07-13 · TA获得超过6864个赞
知道大有可为答主
回答量:9831
采纳率:79%
帮助的人:421万
展开全部
首先子线程必须由主线程启动,所以严格意义上的“子线程结束后再执行主线程”是不可能实现,你的意思应该是:主线程创建完子线程后,等待子线程退出,在继续执行。你的代码基本没有多大问题,只是 Join 方法位置放置不对。 thread1.Start(); // 先启动所有子线程 thread2.Start(); thread3.Start(); thread4.Start(); thread5.Start(); thread1.Join(); // 然后在等待子线程退出 thread2.Join(); thread3.Join(); thread4.Join(); thread5.Join(); 你先前的代码: thread1.Start(); // 线程1 启动 thread1.Join(); // 等待 线程1 退出,线程1 未退出前,后面代码无法执行 thread2.Start(); // 以下代码,均同上所述。 thread2.Join(); thread3.Start(); thread3.Join(); thread4.Start(); thread4.Join();
追问
如果我要等待两个子线程返回的结果之后,才能继续执行,该如何考虑呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式