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

J. *_*lin 11 c# multithreading c#-4.0

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

Eug*_*sky 16

真的吗?

CurrentThread.Join()
Run Code Online (Sandbox Code Playgroud)

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

CurrentThread.Join(someTimeout)
Run Code Online (Sandbox Code Playgroud)

后者相当于

Thread.Sleep(someTimeout)
Run Code Online (Sandbox Code Playgroud)

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


Ree*_*sey 13

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

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

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

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


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