void DoScan(IImportSource source, bool recurse, bool merge, CancellationToken token) { FireEvent(ImportEvent.PhotoScanStarted); foreach (var info in source.ScanPhotos(recurse, merge)) { ThreadAssist.ProxyToMain(() => Photos.Add(info)); if (token.IsCancellationRequested) { break; } } FireEvent(ImportEvent.PhotoScanFinished); }