diff --git a/Wabbajack.Common/Utils.cs b/Wabbajack.Common/Utils.cs index 7d572be6..b1c1e8fc 100644 --- a/Wabbajack.Common/Utils.cs +++ b/Wabbajack.Common/Utils.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Data.HashFunction.xxHash; using System.Diagnostics; @@ -541,6 +541,18 @@ namespace Wabbajack.Common }); } + public static async Task PMap(this IEnumerable coll, WorkQueue queue, StatusUpdateTracker updateTracker, + Func f) + { + var cnt = 0; + var collist = coll.ToList(); + await collist.PMap(queue, async itm => + { + updateTracker.MakeUpdate(collist.Count, Interlocked.Increment(ref cnt)); + await f(itm); + }); + } + public static async Task PMap(this IEnumerable coll, WorkQueue queue, StatusUpdateTracker updateTracker, Action f) { @@ -554,7 +566,6 @@ namespace Wabbajack.Common }); } - public static async Task PMap(this IEnumerable coll, WorkQueue queue, Func f) { @@ -592,7 +603,6 @@ namespace Wabbajack.Common return await Task.WhenAll(tasks); } - public static async Task PMap(this IEnumerable coll, WorkQueue queue, Func> f) {