Background | Suspended  而不是单独的 Suspendedif(thread.ThreadState == ThreadState.Suspended)thread.ThreadStated的状态为:Background | Suspended 而不是ThreadState.Suspended  if返回false

解决方案 »

  1.   

    System.Threading.ThreadState枚举指定Thread的执行状态,此枚举有一个FlagsAttribute属性,允许其成员值按位组合。ThreadState定义的枚举常数如表19-3所示。表19-3 ThreadState定义的枚举常数成员名称
     说    明
     
    Aborted
     线程处于Stopped状态中
     
    AbortRequested
     已对线程调用了Thread.Abort方法,但线程尚未收到试图终止它的挂起的System.Threading. ThreadAbortException
     
    Background
     线程正作为后台线程执行(相对于前台线程而言)。此状态可以通过设置Thread.IsBackground属性来控制
     
    Running
     线程已启动,它未被阻塞,并且没有挂起的ThreadAbortException
     
    Stopped
     线程已停止
     
    StopRequested
     正在请求线程停止。这仅用于内部
     
    Suspended
     线程已挂起
     
    SuspendRequested
     正在请求线程挂起
     
    Unstarted
     尚未对线程调用Thread.Start方法
     
    WaitSleepJoin
     由于调用Wait、Sleep或Join,线程已被阻止
     Thread对象的ThreadState属性提供一个由ThreadState定义的位掩码,它指示线程的当前状态。一个线程至少总是处于ThreadState枚举中定义的一个可能状态,并且可以同时处于多个状态。
      

  2.   

    if(thread.ThreadState == (Thread.State.Background | ThreadState.Suspended))