make discohawk a/b comparer run big batches faster

This commit is contained in:
zeromus 2015-07-08 02:56:59 -05:00
parent 21c355b5ab
commit 763c47c3b3
1 changed files with 5 additions and 7 deletions
BizHawk.Client.DiscoHawk

View File

@ -186,7 +186,7 @@ namespace BizHawk.Client.DiscoHawk
class DiscoHawk
{
static List<string> FindExtensionsRecurse(string dir, string extUppercaseWithDot)
static List<string> FindCuesRecurse(string dir)
{
List<string> ret = new List<string>();
Queue<string> dpTodo = new Queue<string>();
@ -197,12 +197,10 @@ namespace BizHawk.Client.DiscoHawk
if (dpTodo.Count == 0)
break;
dpCurr = dpTodo.Dequeue();
Parallel.ForEach(new DirectoryInfo(dpCurr).GetFiles(), (fi) =>
foreach(var fi in new DirectoryInfo(dpCurr).GetFiles("*.cue"))
{
if (fi.Extension.ToUpperInvariant() == extUppercaseWithDot)
lock(ret)
ret.Add(fi.FullName);
});
ret.Add(fi.FullName);
}
Parallel.ForEach(new DirectoryInfo(dpCurr).GetDirectories(), (di) =>
{
lock(dpTodo)
@ -264,7 +262,7 @@ namespace BizHawk.Client.DiscoHawk
if (scanCues)
{
verbose = false;
var todo = FindExtensionsRecurse(dirArg, ".CUE");
var todo = FindCuesRecurse(dirArg);
var po = new ParallelOptions();
var cts = new CancellationTokenSource();
po.CancellationToken = cts.Token;