C#DispatcherOperation循环永不中断

时间:2012-06-14 18:39:43

标签: c# multithreading dispatcher

有人可以解释为什么这个循环永远不会“破坏”并永远继续下去吗?如何告诉程序重新检查状态?在状态发生变化之前,我想做的就是进步。感谢

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)
{                 
}

1 个答案:

答案 0 :(得分:4)

如果你在调度程序运行的同一个线程上执行此操作,那么无限的,不屈不挠的循环会有效地关闭调度程序,使其无法分派调用。你不应该像这样循环 - 至少把睡眠放在循环中。

相关问题