Thread.IsAlive和Thread.ThreadState == ThreadState.Running

我用if(Thread.IsAlive)来检查线程的状态。 表单正在此线程中运行。 有时在执行期间,即使表单保持打开状态,对Thread.IsAlive的调用似乎也在评估为false。 我想用if(Thread.ThreadState==ThreadState.Running)执行相同的检查。 这是正确的方法吗? 如果没有,可能的工作是什么?

msdn Thread.IsAlive属性如果此线程已启动且未正常终止或中止,则为true;否则为false。 否则,是的。

msdn Thread.ThreadState

  • 运行
    该线程已启动,未被阻止,并且没有挂起的ThreadAbortException。
  • StopRequested
  • SuspendRequested
  • 背景
  • 未开始
  • WaitSleepJoin
  • 暂停
  • AbortRequested

我想现在很明显RunningIsAlive不一样了