Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 线程总是假的#_C#_Multithreading - Fatal编程技术网

C# 线程总是假的#

C# 线程总是假的#,c#,multithreading,C#,Multithreading,嗨,朋友们,我是线程概念的新手。 为什么threadTask.IsAlive总是错误的; 我试过使用threadstate,但总是“未开始” 在threadTask变量的循环中,每次创建新实例时。因此,无论何时检查isAlive,它都会引用当前循环中新创建的实例,而不是先前创建的线程,因此它总是返回false。thread.isAlive属性返回true如果线程已启动且未正常终止或中止;否则,false 看 在检查IsAlive属性时,线程尚未启动。所以在这一点上,你总是会得到错误 要了解如何使

嗨,朋友们,我是线程概念的新手。 为什么threadTask.IsAlive总是错误的; 我试过使用threadstate,但总是“未开始”


在threadTask变量的循环中,每次创建新实例时。因此,无论何时检查isAlive,它都会引用当前循环中新创建的实例,而不是先前创建的线程,因此它总是返回false。

thread.isAlive属性返回true如果线程已启动且未正常终止或中止;否则,false

在检查IsAlive属性时,线程尚未启动。所以在这一点上,你总是会得到错误


要了解如何使用线程,请参阅msdn。启动线程后检查线程是否处于活动状态,返回false。这是因为线程不是从中间开始的。相反,请检查其状态是否已停止:

if(t.ThreadState == System.Threading.ThreadState.Stopped)

线程在完成任务时停止。您可以检查其他代码

你为什么期望它活着?在哪一行?它在启动之前是不活动的。因为您还没有启动它?那么如何创建实例
if(t.ThreadState == System.Threading.ThreadState.Stopped)