C# 线程总是假的#
嗨,朋友们,我是线程概念的新手。 为什么threadTask.IsAlive总是错误的; 我试过使用threadstate,但总是“未开始”C# 线程总是假的#,c#,multithreading,C#,Multithreading,嗨,朋友们,我是线程概念的新手。 为什么threadTask.IsAlive总是错误的; 我试过使用threadstate,但总是“未开始” 在threadTask变量的循环中,每次创建新实例时。因此,无论何时检查isAlive,它都会引用当前循环中新创建的实例,而不是先前创建的线程,因此它总是返回false。thread.isAlive属性返回true如果线程已启动且未正常终止或中止;否则,false 看 在检查IsAlive属性时,线程尚未启动。所以在这一点上,你总是会得到错误 要了解如何使
在threadTask变量的循环中,每次创建新实例时。因此,无论何时检查isAlive,它都会引用当前循环中新创建的实例,而不是先前创建的线程,因此它总是返回false。thread.isAlive属性返回true如果线程已启动且未正常终止或中止;否则,false 看 在检查IsAlive属性时,线程尚未启动。所以在这一点上,你总是会得到错误
要了解如何使用线程,请参阅msdn。启动线程后检查线程是否处于活动状态,返回false。这是因为线程不是从中间开始的。相反,请检查其状态是否已停止:
if(t.ThreadState == System.Threading.ThreadState.Stopped)
线程在完成任务时停止。您可以检查其他代码 你为什么期望它活着?在哪一行?它在启动之前是不活动的。因为您还没有启动它?那么如何创建实例
if(t.ThreadState == System.Threading.ThreadState.Stopped)