private static IEnumerable <string> EnumerateFiles(string path, string[] patterns, bool recursive, CancellationToken cancelToken, IReader reader) { foreach (string pattern in patterns) { if (cancelToken.IsCancellationRequested) { break; } foreach (var filePath in reader.EnumerateFiles(path, pattern, recursive)) { if (cancelToken.IsCancellationRequested) { break; } yield return(filePath); } } }