c# - Thread.IsAlive 和 Thread.ThreadState==ThreadState.Running

标签 c# multithreading thread-state

我正在使用 if(Thread.IsAlive) 检查线程的状况。该线程中正在运行一个表单。有时在执行过程中,即使窗体保持打开状态,对 Thread.IsAlive 的调用似乎评估为 false。我想用 if(Thread.ThreadState==ThreadState.Running) 执行相同的检查。这是正确的做法吗?如果不是,可能的解决方法是什么?

最佳答案

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

msdn线程.ThreadState

  • 运行
    线程已经启动,没有阻塞,也没有挂起的ThreadAbortException。
  • 已请求停止
  • 已请求暂停
  • 背景
  • 未开始
  • 等待 sleep 加入
  • 暂停
  • 已请求中止

我想现在很清楚 RunningIsAlive 不同

关于c# - Thread.IsAlive 和 Thread.ThreadState==ThreadState.Running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232521/

相关文章:

c# - .Net框架要求安装SQLite

c# - 绑定(bind)到依赖属性,而依赖属性又绑定(bind)到另一个绑定(bind)源

c++ - Qt 并发与信号和槽

java - 如何等待多个对象

C# 线程的状态和 "Sleep"

java - Thread.interrupt 上的 IllegalThreadStateException

c# - 如何防止人们继续将 HTTP POST 循环到一个函数?

c# - 使用 SSL 连接到 Postgresql

python - Python 中的多处理比单线程慢