public AutoRecoveringFileSystemWatcher(string path, string filter = "*.*",
bool includeSubdirectories = true, WatcherChangeTypes changeTypes = WatcherChangeTypes.All, TraceWriter traceWriter = null)
{
_path = path;
_filter = filter;
_changeTypes = changeTypes;
_includeSubdirectories = includeSubdirectories;
_traceWriter = traceWriter;
_cancellationTokenSource = new CancellationTokenSource();
_cancellationToken = _cancellationTokenSource.Token;
_handleFileError = new Action<ErrorEventArgs>(OnFileWatcherError).Debounce();
InitializeWatcher();
}