Пример #1
0
        private static List <Task> StartEnumerationTasks(
            ExportConfig config, ExportStatus status)
        {
            return(Enumerable
                   .Range(0, config.EnumerationTasks)
                   .Select(_ => Task.Factory.StartNew(() =>
            {
                while (status.DirQueue.TryDequeue(out var dir))
                {
                    if (!config.Shallow)
                    {
                        FillQueue(
                            status.DirQueue,
                            dir.Directories.Values);
                    }

                    status.ReportFilesDiscovered(dir.Files.Values);
                    FillQueue(status.FileQueue, dir.Files.Values);
                }
                status.IsEnumerationDone = true;
            })).ToList());
        }