就是这种情况。我有一个创建2个子线程的应用程序。当我为ChildThread1调用Join方法时,MainThread正在等待这个连接操作。很冷。但这不是重点。这是预料之中的。 关键是ChildThread2在此操作中的影响。是等待此操作还是正常运行? 感谢。
答案 0 :(得分:2)
ChildThread2不受影响。
现在,如果它是一个后台线程,如果Join
是Main
在退出之前做的最后一件事,那么会杀死ChildThread2
,但这与Join
本身无关,但事实上,一旦所有非后台线程完成,应用程序就会关闭,杀死所有后台线程。
如果它不是后台线程,那么这不适用 - 主线程退出(ChildThread1
之后Join
意味着它等待它),然后第二个产生线程完成,或者第二个线程生成的线程已经完成,当它们全部完成时,应用程序结束。
请注意,如果您尝试Join
已完成的线程,则会立即返回对Join
的调用。因此,如果你想让一个线程在两个或多个线程上等待,并且无法预测它们的顺序,那么等待一个然后另一个完全没问题。
答案 1 :(得分:1)
ChildThread2
将继续执行,直到完成或中止。