public void ShowHistoryWindow(double top, double left) { if (_historyWindow != null && !_historyWindow.IsClosed) { // do nothing return; } _historyWindow = new HistoryWindow(); _historyWindow.Left = left; _historyWindow.Top = top; _historyWindow.Pipeline = _pipeline; _historyWindow.QueryResultHandler = _resultHandler; _historyWindow.QueryResultRecordManager = _queryResultRecordManager; _historyWindow.ChangeText = new ChangeString(ChangeInputText); this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Render, new Action( delegate() { _historyWindow.LoadHistoryRecord(); _historyWindow.Show(); }) ); }