【发布时间】:2014-12-18 09:15:01
【问题描述】:
我正在研究 Dispatcher.DisableProcessing() 作为暂停和恢复 UI 渲染的一种方式,并且我试图在没有 using(){} 语句的情况下使用它。
它抛出 InvalidOperationException - Dispatcher 处理已暂停,但消息仍在处理中。
问题: 为什么会抛出这个异常? 有什么方法可以在 using(){} 语句之外使用它?
提前致谢!
-已编辑以包含测试代码-
工作流程:
成功运行 OnPauseButtonClick 代码后仍然会发生该异常。
public class MainWindow: Window
{
public MainWindow()
{
Initialize();
}
private DispatcherProcessingDisabled x;
public void OnPauseButtonClick(object sender, RoutedEventArgs e)
{
x = Dispatcher.DisableProcessing();
}
public void OnTestButtonClick(object sender, RoutedEventArgs e)
{
Timer t = new Timer(TimerCallback, null, 0, 1000);
}
public void TimerCallback(object o)
{
//all codes were commented out
}
}
【问题讨论】:
标签: c# .net wpf dispatcher