public async Task StartScanner(IProgress <ScanProgress> progress) { FlaggedDirectories.Clear(); FlaggedFiles.Clear(); var drives = DriveInfo.GetDrives(); foreach (var driveInfo in drives) { try { await Task.Run(async() => { await Scan(driveInfo.Name, progress, token.Token); }, token.Token); } catch (OperationCanceledException) { var timeElapsed = stopwatch.Elapsed; ScanningStatus = $"Cancelled {timeElapsed:c}"; } catch (Exception ex) { } finally { } } }