18/07/22 03:07:13.11 IU6x2eOV0.net
>>815
> そうです、最も投げやすく勝手にマルチしてくれる便利なParallelさんって聞いて使ってるます
これは私も同じように認識しています
> cpuキャッシュとか考慮せずマルチ=高速って誤認識で走ってきて
これは場合によりけりだと思います
特に今回のように外部ツール側でマルチスレッドにできる場合はツールの呼び出し側では
余計なことをせず外部ツールに任せたほうが高速になる場合が多いと思います
>>817
C# で並列処理を行うならこれは一つの解決策になりそうですね
別の解決策として、新たに参照を追加する必要のない↓の方法とかどうでしょう?
var tasks = new List<Task>();
foreach (var param in zipOpParams)
{
if (tasks.Count == 8) tasks.Remove(await Task.WhenAny(tasks));
tasks.Add(ExecuteZipOpAsync(param).ContinueWith(
_ => InvokeUpdateUi(param),
TaskScheduler.FromCurrentSynchronizationContext()));
}
await Task.WhenAll(tasks);