有人可以解释为什么会这样吗?在以下代码中,即使条件返回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仍在更新。