public void StartSearch(string path, string searchPattern, string insideText) { Regex regex; Reset(); mre = new ManualResetEvent(false); if (System.String.IsNullOrWhiteSpace(searchPattern) == false) { regex = MaskToRegex(searchPattern); } else { regex = new Regex(".*"); } state = SearcherState.InProgress; stopwatch.Start(); SearchThread = new Thread(new ParameterizedThreadStart(Search)); SearchThread.Start(new SearchParameters(path, regex, insideText)); waiter = Task.Run(() => { SearchThread.Join(); stopwatch.Stop(); }); }
public void Pause() { if (state == SearcherState.InProgress) { toPause = true; state = SearcherState.Paused; } }
public void Stop() { if (state != SearcherState.Stopped) { SearchThread.Abort(); stopwatch.Stop(); state = SearcherState.Stopped; } }
public void Continue() { if (state == SearcherState.Paused) { mre.Set(); stopwatch.Start(); state = SearcherState.InProgress; } }