c# 多线程:主线程执行,需要两个子线程完成,才能继续。
主线程要完成执行的话,需要两个子线程都返回结果之后,才能继续。请高手指点,提供一个思路。我想定义一个委托,委托调用两个方法,不知道这个思路是否可以?...
主线程要完成执行的话,需要两个子线程都返回结果之后,才能继续。请高手指点,提供一个思路。我想定义一个委托,委托调用两个方法,不知道这个思路是否可以?
展开
1个回答
展开全部
首先子线程必须由主线程启动,所以严格意义上的“子线程结束后再执行主线程”是不可能实现,你的意思应该是:主线程创建完子线程后,等待子线程退出,在继续执行。你的代码基本没有多大问题,只是 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();
追问
如果我要等待两个子线程返回的结果之后,才能继续执行,该如何考虑呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |