Thread.CurrentThread.Join()什么时候有意义?

调用Thread.CurrentThread.Join()会有什么影响,如果/什么时候调用它会有意义?

调用Thread.CurrentThread.Join()有什么影响

您将阻止当前线程的执行,并有效地将其锁死。 它将导致当前线程阻塞,直到当前线程结束,这将永远不会发生。

,如果/什么时候打电话有意义?

这样做真的没有意义。 你永远不应该以这种方式调用这个方法。


另外,由于您使用的是.NET 4,我建议您一般不要使用Thread.Join 。 使用新的Task / Task类在很多方面都要好得多,因为你可以轻松地附加continuation(或者如果你真的需要阻塞,总是调用Task.Wait() )。

真的吗?

 CurrentThread.Join() 

你在实际代码中看到的 – 我有点怀疑,除非它是一些黑客阻止其他线程加入当前线程 – 或者是它

 CurrentThread.Join(someTimeout) 

后者相当于

 Thread.Sleep(someTimeout) 

除了在GUI / COM情况下加入当前线程允许消息泵送继续。

不,CurrentThread.Join()毫无意义
这可能会使程序停止运行,使线程A等待线程A。

它实际上在可观察的世界中是有意义的。 假设您在main中有一个队列侦听器,并且您希望永久保持主线程运行。 而不是执行while(true)并将代码放在循环中,最后一行可以写出来。 这样,当前线程也将成为应用程序中生成的其他线程的父线程。 将其视为应用的切入点。