我正在使用此代码TraverseTreeParallelForEach
有时我会神秘地得到聚合异常。Add(T) 处的数组索引越界异常。我将它用于我的备份程序。
public List<string> execute(string filterlist, string[] drives) 
    {
        List<string> returnfiles = new List<string>(); // final list
        foreach (string drive in drives)
        {
            foreach (string filter in filterlist.Split(','))
            {
                TraverseTreeParallelForEach(drive, filter, (f) =>
                {
                    returnfiles.Add(f);
                });
            }
        }
        Console.WriteLine("Returnfiles count " + returnfiles.Count);
        returnfiles.RemoveAll(item => item == null); //remove nulls
        return returnfiles;
    }
Q2。目前搜索 5 个驱动器 ~400GB 需要 1-1.5 分钟,因此任何其他加速搜索或对代码进行任何调整的方法。
Q3。我的程序首先列出然后压缩列表中的文件。生产者-消费者实施能否提高总时间?