即使条件为真,也不执行代码

时间:2014-06-16 10:31:26

标签: c# wpf multithreading

有人可以解释为什么会这样吗?在以下代码中,即使条件返回true,也不会执行if条件中的代码。

//suspend thread 
if (objThread.ThreadState == ThreadState.Running)
{
    objThread.Suspend();
}

好的,这就是我的情景。我有两个TabItem个。在Window_Loaded事件中,我启动了一个将值连续更新为DataGrid的线程。现在,当我选择其他TabItem时,我希望第一个TabItem中的更新停止。所以,我将上面的代码放在TabItem_LostFocus事件中。焦点丢失时应该暂停线程,对吧?在UserControl_Loaded事件中,我正在检查线程的状态。

if (objThread.ThreadState == ThreadState.Suspended)
{
    objThread.Resume();
}
else
{
    // Start the thread
    objThread.Start();
}

但是,我得到一个像这样的错误: “线程正在运行或终止;它无法重新启动。”

但线程还活着,因为我的UI仍在更新。

0 个答案:

没有答案