public static class WindowEx
{
public static void DoEvents(this Window obj)
{
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background,
new DispatcherOperationCallback(delegate (object f)
{
((DispatcherFrame)f).Continue = false;
return null;
}
), frame);
Dispatcher.PushFrame(frame);
}
}