Thread.Join vs Thread.State

Ram*_*Ram 7 .net c# multithreading

如果线程已经完成,Thread.Join返回我们.我们可以使用ThreadState确定相同的内容.那么Thread.Join()和Thread.ThreadState之间有什么区别?

我们可以互换使用它们吗?

Jar*_*Par 14

Join和ThreadState手动查看之间的区别Join是阻塞操作.在达到超时或目标Thread完成之前,该函数不会返回.检查ThreadState更多的是偷看操作.

  • 啊......来自*MSDN:有两个线程状态枚举,System.Threading.ThreadState和System.Diagnostics.ThreadState.线程状态枚举仅在少数调试方案中引起关注.您的代码永远不应该使用线程状态来同步线程的活动.*http://msdn.microsoft.com/en-us/library/system.threading.threadstate.aspx (2认同)
  • @Josh两者都是不可靠的,因为他们只提供过去的信息:) (2认同)

NG.*_*NG. 6

Thread.join WAITS用于完成线程. ThreadState只是为您提供线程的快照,并返回而无需等待.还有一个Thread.join的变种,需要一些时间等待.ThreadState和Join非常不同,我认为两者都不能互换使用.

尝试进行测试,在具有无限循环的线程上进行两次调用.