请问在以下代码中线程未并创建时,线程应该只是null.那么在if条件中的"threadsRun[nIndex].ThreadState != ThreadState.Suspended"为什么要判断线程状态是否为Suspended呢?在if处设置断点此时线程的状态为什么是running,不是线程还没有被实例化吗?Thread[] threadsRun;if (threadsRun[nIndex] == null || threadsRun[nIndex].ThreadState != ThreadState.Suspended)
                        {
                            threadsRun[nIndex] = new Thread(new ThreadStart(ThreadRunFunction));
                            threadsRun[nIndex].Name = nIndex.ToString();
                            threadsRun[nIndex].Start();                       }

解决方案 »

  1.   

    能确定在进行if判断的时候线程没有被实例化吗?代码贴的不太全啊。if (threadsRun[nIndex] == null || threadsRun[nIndex].ThreadState != ThreadState.Suspended)这句话的意思是:
    在if中,||前面的条件如果满足,就不再判断||后面的条件了,可以直接执行if块中的语句。
    如果||前面的条件不满足,那么继续判断||后面的条件,如果满足,执行if块中的语句,如果不满足,执行if块后面的语句