我有一个正在构建的 WPF 应用程序。程序在初始化时会显示一个启动屏幕。大多数启动顺序需要在显示主窗口后在后台线程中完成。我的问题是主窗口在我想要的时候没有显示。
这是我的主窗口的 Window_Loaded 事件处理程序:
private void Window_Loaded( object sender, RoutedEventArgs e ) {
if ( !DoInitialize() ) {
shuttingDown = true;
Application.Shutdown();
}
e.Handled = true;
}
private bool DoInitialize() {
if ( !ReadConfiguration( Application.ConfigurationFilePath ) ) {
return false;
}
Thread th = new Thread( new ThreadStart( FinishInitializing ) );
th.SetApartmentState(ApartmentState.STA);
th.Start();
ClockTimer = new DispatcherTimer( TimeSpan.FromSeconds( 1 ), DispatcherPriority.Background, UpdateClock, Dispatcher );
ClockTimer.Start();
return true;
}
如您所见,除了读取配置文件之外,它除了启动后台Thread
完成初始化并启动DispatcherTimer
. 此计时器用于更新显示屏上的时钟。
究竟是什么触发了主窗口的显示?
托尼