Files
WowUp/WowUp.WPF/Extensions/TaskExtensions.cs
jliddev 10872eec81 Release 1.0.0
Remove website
2020-07-05 21:00:51 -05:00

23 lines
677 B
C#

using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WowUp.WPF.Extensions
{
public static class TaskExtensions
{
public static Task ForEachAsync<T>(this IEnumerable<T> source, int dop, Func<T, Task> body)
{
return Task.WhenAll(
from partition in Partitioner.Create(source).GetPartitions(dop)
select Task.Run(async delegate {
using (partition)
while (partition.MoveNext())
await body(partition.Current);
}));
}
}
}