有人可以解释一下为什么这个循环永远不会“中断”并且永远持续下去吗?我如何告诉程序重新检查状态?我只想在状态改变之前不进步。谢谢
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)
{
}
最佳答案
如果您在调度程序要在其上运行的同一线程上执行此操作,那么无限的、不屈不挠的循环会有效地阻止调度程序调度调用。无论如何,您都不应该像这样循环 - 至少在循环中放置一个 Sleep。
关于C# DispatcherOperation 循环永不中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11039346/