public void Dispose() { _cts.Cancel(); _watchdogThread.Dispose(); IWatchdog watchdog; while (_watchdogs.TryTake(out watchdog)) { watchdog.Dispose(); } _searchIndex.Dispose(); }