2016-01-18 152 views
1

每次打開一個新窗口時,我都會注意到性能下降。 當我打開一個新的窗口,我用這個:打開和關閉窗口後,WPF應用程序變慢

 NewWindow.Show(); 
     Window oldWindow = Application.Current.MainWindow; 
     Application.Current.MainWindow = NewWindow; 
     oldWindow.Close(); 

這是否會導致性能的參考/降,或者我需要更深入地研究這個應用程序?

編輯: 是一個可怕的CanExecute輪詢數據庫。

回答

0

我有同樣的問題,並通過在新線程中創建新窗口來解決它! 這裏是例子:

Thread windowThread = new Thread(new ThreadStart(() => 
     { 
      MyWindow NSWindow = new MyWindow(); 

      // When the window closes, shut down the dispatcher 
      NSWindow.Closed += (s, e) => 
      Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Background); 
      NSWindow.Show(); 
      // Start the Dispatcher Processing 
      System.Windows.Threading.Dispatcher.Run(); 
     })); 

     windowThread.SetApartmentState(ApartmentState.STA); 
     // Make the thread a background thread 
     windowThread.IsBackground = true; 
     // Start the thread 
     windowThread.Start();