private void SearchComponent() { SetDialog("Searching..."); ThreadManager.Instance.ScheduleTask(() => { var isError = false; var errorMessage = string.Empty; var components = new List <SolutionComponentBase>(); try { components = CurrentSolutionManager.SearchComponent(SelectedType.Type, Value); } catch (Exception ex) { isError = true; errorMessage = ex.Message; } System.Windows.Application.Current.Dispatcher.Invoke(() => { if (isError) { MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } else { SearchedComponents = components; _window.Close(); } UnsetDialog(); }); }, string.Empty, _searchTaskId); }