void StopFilterWorkerThread () { if (updateThread != null) { updateThread.Stop (); //updateThread.WaitForFinish (); updateThread = null; } }
void UpdateFromCatalog () { filter = this.searchEntryFilter.Entry.Text; if (!IsCaseSensitive && filter != null) filter = filter.ToUpper (); if (RegexSearch) { try { RegexOptions options = RegexOptions.Compiled; if (!IsCaseSensitive) options |= RegexOptions.IgnoreCase; regex = new Regex (filter, options); } catch (Exception e) { IdeApp.Workbench.StatusBar.ShowError (e.Message); this.searchEntryFilter.Entry.ModifyBase (StateType.Normal, errorColor); return; } } this.searchEntryFilter.Entry.ModifyBase (StateType.Normal, Style.Base (StateType.Normal)); StopFilterWorkerThread (); updateThread = new FilterWorkerThread (this); updateThread.Start (); }