1

有人可以解释一下为什么这个循环永远不会“中断”并且永远持续下去吗?我如何告诉程序重新检查状态?我想做的就是在状态改变之前不进步。谢谢

DispatcherOperation dis = null;
for (int i = 0; i < 2; i++)
{
    updateTextBox(i.ToString());
    dis = Dispatcher.BeginInvoke(DispatcherPriority.Send, new Action(delegate
        {
            //yes, do nothing at all!!
        }
    ));
}

while(dis.Status != DispatcherOperationStatus.Completed)
{                 
}
4

1 回答 1

4

如果您在调度程序运行的同一线程上执行此操作,那么您的无限、不屈不挠的循环有效地使调度程序无法调度调用。无论如何,您都不应该像这样循环 - 至少在循环中放置一个 Sleep。

于 2012-06-14T18:55:36.107 回答