public async Task AddSomeTaskFunc_RunIt_AllDone() { var tasks = Enumerable.Range(0, 10) .Select(x => TaskGen(() => { })) .ToArray(); var res = await TaskQuene.RunVoidAsync(tasks); Assert.AreEqual(res.Length, tasks.Length); foreach (var item in res) { Assert.IsTrue(item.IsCompleted); } }
public static Task BatchEmitAsync(this IComicDownloader downloader, ComicDownloadRequest request, int concurrent = 5, CancellationToken token = default) { if (downloader is null) { throw new ArgumentNullException(nameof(downloader)); } if (request is null) { throw new ArgumentNullException(nameof(request)); } if (concurrent <= 0) { throw new ArgumentOutOfRangeException(nameof(concurrent)); } var tasks = downloader.EmitTasks(request, token); return(TaskQuene.RunVoidAsync(tasks, concurrent)); }