这是这种情况。我有一个创建 2 个子线程的应用程序。当我为 ChildThread1 调用 Join 方法时,MainThread 正在等待这个连接操作。天气很冷。但这不是重点。这是预期的。关键是 ChildThread2 在此操作中的影响。它是等待这个操作还是正常运行?谢谢。
问问题
289 次
2 回答
2
ChildThread2 不受影响。
现在,如果它是一个后台线程,并且如果它Join
是退出之前做的最后一件事Main
,那么它将杀死ChildThread2
,但这与它本身无关Join
,但事实上,一旦所有非后台线程都完成了,应用程序关闭,杀死所有后台线程。
如果它不是后台线程,那么这不适用 - 要么主线程退出(ChildThread1
因为Join
它等待它的手段之后),然后第二个产生的线程完成,或者第二个线程产生的线程已经完成,当他们都完成后,应用程序结束。
请注意,如果您尝试Join
使用已完成的线程,则调用会Join
立即返回。因此,如果您希望一个线程等待两个或多个线程,并且无法预测它们的顺序,那么等待一个然后另一个是完全可以的。
于 2012-08-26T12:33:44.403 回答
1
ChildThread2
将继续执行,直到它完成或中止。
于 2012-08-26T12:15:36.870 回答