WPF Doeventの実装方法
WPF Doeventの実装方法
WPFはWindows.formsのように、Doeventsが用意されていない為、自分で実装する必要がある。
基本的にマイクロソフトのヘルプにサンプルがあるので、それをコピペで使用するだけなのだけれども、毎回探すのも不便なので、自分のブログに準備してみた。
#region "DoEvents"
private void DoEvents()
{
DispatcherFrame frame = new DispatcherFrame();
var callback = new DispatcherOperationCallback(ExitFrames);
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, callback, frame);
Dispatcher.PushFrame(frame);
}
private object ExitFrames(object obj)
{
((DispatcherFrame)obj).Continue = false;
return null;
}
#endregion
private void DoEvents()
{
DispatcherFrame frame = new DispatcherFrame();
var callback = new DispatcherOperationCallback(ExitFrames);
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, callback, frame);
Dispatcher.PushFrame(frame);
}
private object ExitFrames(object obj)
{
((DispatcherFrame)obj).Continue = false;
return null;
}
#endregion
コピペするだけで使えます。
どうぞどうぞ。