我动态的创建了几个现成,每个线程对应一个属性,当这个属性为false的时候,挂起线程,当属性为true是重新运行线程.我更改了属性的时候,却没办法更改线程运行状态.
代码如下:
foreach(string k in _htRuntime.Keys)
{
if(_htRuntime[k].ToString()=="true")//判断属性是否为true;
{
if(_htThread.ContainsKey(k))
{
Thread t = (Thread)_htThread[k];
if(t.ThreadState == ThreadState.Suspended)//这里判断线程当前状态
{
t.Resume();//恢复线程运行
}
}
}
else //属性为false;
{
if(_htThread.ContainsKey(k))
{
Thread t = (Thread)_htThread[k];
if(t.ThreadState == ThreadState.Suspended)//判断现成状态
{
continue;
}
else
{
t.Suspend();//挂起线程
}
}
}
}为什么我上边的代码无法的到正确的运行结果??
代码如下:
foreach(string k in _htRuntime.Keys)
{
if(_htRuntime[k].ToString()=="true")//判断属性是否为true;
{
if(_htThread.ContainsKey(k))
{
Thread t = (Thread)_htThread[k];
if(t.ThreadState == ThreadState.Suspended)//这里判断线程当前状态
{
t.Resume();//恢复线程运行
}
}
}
else //属性为false;
{
if(_htThread.ContainsKey(k))
{
Thread t = (Thread)_htThread[k];
if(t.ThreadState == ThreadState.Suspended)//判断现成状态
{
continue;
}
else
{
t.Suspend();//挂起线程
}
}
}
}为什么我上边的代码无法的到正确的运行结果??
改成:
if((bool)_htRuntime[k]=true)//判断属性是否为true;
改成:
if((bool)_htRuntime[k]==true)//判断属性是否为true;
改成:
if((bool)_htRuntime[k]==true)//判断属性是否为true;
楼上的老大.不是这个问题.这个能够正确判断的.我测试了的.
{
if(_htThread.ContainsKey(k))
{
Thread t = (Thread)_htThread[k];
if(t.ThreadState == ThreadState.Suspended)//这里判断线程当前状态**********
{
t.Resume();//恢复线程运行
}
}
}
***********的地方,你为什么两次判断线程是否挂起状态呀?