Я исследую Dispatcher.DisableProcessing() как средство для приостановки и возобновления рендеринга пользовательского интерфейса, и я пытаюсь использовать его без оператора 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
}
}