0

这是这种情况。我有一个创建 2 个子线程的应用程序。当我为 ChildThread1 调用 Join 方法时,MainThread 正在等待这个连接操作。天气很冷。但这不是重点。这是预期的。关键是 ChildThread2 在此操作中的影响。它是等待这个操作还是正常运行?谢谢。

4

2 回答 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 回答