C# 可能线程处于不同的状态?

C# 可能线程处于不同的状态?,c#,C#,条件不是真的,执行发生了,怎么会发生 Wav.Checked始终为真,记录器很长一段时间没有为空,我已经显示了流的状态。。但是这个项目是在GoWA()上进行的 为什么? 可能线程处于不同的状态,尝试添加| | recorder.ThreadState!=ThreadState.WaitSleepJoin-相同的结果 使用更好的recorder.IsAlive而不是检查线程状态 很难预测线程的状态。。出于您的目的,IsAlive会更好。也许您应该添加更多的上下文,或者一些代码?第一个建议是,除非

条件不是真的,执行发生了,怎么会发生

Wav.Checked始终为真,记录器很长一段时间没有为空,我已经显示了流的状态。。但是这个项目是在GoWA()上进行的

为什么?

可能线程处于不同的状态,尝试添加| | recorder.ThreadState!=ThreadState.WaitSleepJoin-相同的结果


使用更好的
recorder.IsAlive
而不是检查线程状态


很难预测线程的状态。。出于您的目的,
IsAlive
会更好。

也许您应该添加更多的上下文,或者一些代码?第一个建议是,除非您完全知道需要,否则停止使用Thread类,并使用Task
Thread recorder;
void GoWA() {
    ParentPtr = this.Handle;
    recorder = new Thread(new ThreadStart(GoWithWA));
    recorder.Start();
}
private void GoWithWA() {
    Thread.CurrentThread.Priority = ThreadPriority.Highest;
    StartWA();
    waitor.Reset();
    while (!waitor.WaitOne(50)){
    }
    WA.waveInReset(phwi);
    GC.KeepAlive(waCallback_);
}