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)并将代码放在循环中,最后一行可以写出来。 这样,当前线程也将成为应用程序中生成的其他线程的父线程。 将其视为应用的切入点。