C#线程。连接其他线程的影响

C#线程。连接其他线程的影响,c#,.net,multithreading,C#,.net,Multithreading,情况就是这样。我有一个创建两个子线程的应用程序。当我为ChildThread1调用联接方法时,主线程正在等待此联接操作。天气很冷。但这不是重点。这是意料之中的。 关键是ChildThread2在此操作中的影响。它是等待此操作还是正常运行? 谢谢。ChildThread2将继续执行,直到完成或中止。ChildThread2将继续执行,直到完成或中止。ChildThread2不受影响 现在,如果它是一个后台线程,并且如果Join是Main在退出之前做的最后一件事,那么这将杀死ChildThread2

情况就是这样。我有一个创建两个子线程的应用程序。当我为ChildThread1调用联接方法时,主线程正在等待此联接操作。天气很冷。但这不是重点。这是意料之中的。 关键是ChildThread2在此操作中的影响。它是等待此操作还是正常运行?
谢谢。

ChildThread2
将继续执行,直到完成或中止。

ChildThread2
将继续执行,直到完成或中止。

ChildThread2不受影响

现在,如果它是一个后台线程,并且如果
Join
Main
在退出之前做的最后一件事,那么这将杀死
ChildThread2
,但这与
Join
本身无关,而是与所有非后台线程完成后,应用程序关闭,终止所有后台线程

如果它不是后台线程,那么这不适用-要么主线程退出(在
ChildThread1
之后,因为
Join
意味着它等待它),然后第二个派生线程完成,要么第二个线程派生线程已经完成,当它们全部完成时,应用程序结束


请注意,如果尝试
Join
已完成的线程,则对
Join
的调用将立即返回。因此,如果您希望一个线程在两个或多个线程上等待,并且无法预测它们的顺序,那么最好先等待一个线程,然后再等待另一个线程。

ChildThread2不受影响

现在,如果它是一个后台线程,并且如果
Join
Main
在退出之前做的最后一件事,那么这将杀死
ChildThread2
,但这与
Join
本身无关,而是与所有非后台线程完成后,应用程序关闭,终止所有后台线程

如果它不是后台线程,那么这不适用-要么主线程退出(在
ChildThread1
之后,因为
Join
意味着它等待它),然后第二个派生线程完成,要么第二个线程派生线程已经完成,当它们全部完成时,应用程序结束


请注意,如果尝试
Join
已完成的线程,则对
Join
的调用将立即返回。因此,如果您希望一个线程在两个或多个线程上等待,并且无法预测它们的顺序,那么最好先等待一个线程,然后再等待另一个线程。

尝试时发生了什么?尝试时发生了什么?