我运行的Wpf应用程序与常规方法有些不同。
我有一个包含Wpf窗口的类库项目,并且运行得很好。
有时由于我尚不知道的原因,在实例化该窗口后,当我移至下一个结构时,该窗口的调度程序为null。]
我试图弄清楚应该在WPF应用程序生命周期的哪一点创建分派器?
谢谢
namespace WpfLib1
{
public class ViewModel
{
private Window1 _window1;
public void Launch()
{
using (EventWaitHandle eventWaiter = new EventWaitHandle(false, EventResetMode.AutoReset,"someName"))
{
Thread splashThread = new Thread(new ThreadStart(ShowCustom)) { IsBackground = true };
splashThread.SetApartmentState(ApartmentState.STA);
splashThread.Start();
eventWaiter.WaitOne();
}
}
private void ShowCustom()
{
_window1 = new Window1();
EventWaitHandle eventWaiter = EventWaitHandle.OpenExisting("someName");
eventWaiter.Set();
_window1.Closed += (sender, args) =>
{
_window1.Dispatcher.BeginInvokeShutdown(DispatcherPriority.Background);
};
_window1.Show();
Dispatcher.Run();
}
}
}
我正在运行Wpf应用程序,与常规方法有些不同。我有一个包含Wpf窗口的类库项目,并且运行得很好。有时,窗口中的调度程序为null ...
您应该创建一个使用Dispatcher
的同步上下文: