Что если вы попытаетесь использовать DispatcherFrame, чтобы имитировать, какие формы будут выполнять DoEvents:
Возможно, вам потребуется включить System.Security.Permissions и System.Windows.Threading. После этого сделайте вызов DoEvents () после каждого вашего сна, и вы получите желаемый результат.
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public void DoEvents()
{
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background,
new DispatcherOperationCallback(ExitFrame), frame);
Dispatcher.PushFrame(frame);
}
public object ExitFrame(object f)
{
((DispatcherFrame)f).Continue = false;
return null;
}
Ссылка на статью MSDN: http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.pushframe.aspx