Проучвам Dispatcher.DisableProcessing() като средство за поставяне на пауза и възобновяване на изобразяването на потребителския интерфейс и се опитвам да го използвам без оператора using(){}.
Той хвърля InvalidOperationException - обработката на диспечера е спряна, но съобщенията все още се обработват.
Въпрос: Защо се хвърля това изключение? Има ли някакъв начин да го използвам извън оператора 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
}
}