我正在使用此代码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。我的程序首先列出然后压缩列表中的文件。生产者-消费者实施能否提高总时间?