private void StartStopSearchButton_Click(object sender, EventArgs e) { PushToSettings(); if (SearchSettings.BadSettings()) { MessageBox.Show("Ошибка! \nНужно задать корневую директорию и хотя бы один фильтр, и их длина должна быть не больше 50 символов."); return; } SearchStarted = !SearchStarted; if (SearchStarted) { DisableConfig(); PauseResumeSearchButton.Enabled = true; StartStopSearchButton.Text = "Stop"; BackgroundSearcher.RunWorkerAsync(); SearchTimer.Start(); } else { BackgroundSearcher.CancelAsync(); SearchPaused = false; EnableConfig(); PauseResumeSearchButton.Text = "Pause"; PauseResumeSearchButton.Enabled = false; SearchTimer.Stop(); } }
private void BackgroundSearcher_DoWork(object sender, DoWorkEventArgs e) { ProcessCurrentDirectory(SearchSettings.RootDirPath); SearchPaused = false; SearchStarted = false; this.Invoke( new MethodInvoker(delegate { EnableConfig(); PauseResumeSearchButton.Text = "Pause"; PauseResumeSearchButton.Enabled = false; SearchTimer.Stop(); StartStopSearchButton.Text = "Start"; }) ); BackgroundSearcher.CancelAsync(); }