C# DispatcherOperation 循环永不中断

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

最佳答案

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

关于C# DispatcherOperation 循环永不中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11039346/

相关文章:

c# - 在单元测试 FormsAuthentication.SignOut() 中抛出错误

c# - 创建一个 Txt 文件并写入

c# - c#中的递归相关问题

java - 为什么我的 Java 应用程序不在每次循环时播放声音?

c# - 方法启动时停止 DispatcherTimer

c# - WPF:在 UI 线程和后台线程之间传递对象

wpf - 计算应等待调度程序

C# DataGridView如何照亮当前List<Action>

c++ - 线程对象可以在C++ 11中 move 吗?

java - ThreadLocal set() 然后立即 get() 并不总是获取值