代码片段
async Task<bool> Method1(string name,string email)
{
await Task.Delay(500);
Console.WriteLine("Method 1" + name +""+email);;
return true;
}
我们将所有方法存储在列表中
var tasks=new Func<Task>[]
{
()=>Method1(name,email),
()=>Method2(name,email),
()=>Method3(name,email),
()=>Method4(name,email),
()=>Method5(name,email)
}
我们必须使用 SemaphoreSlim(3) 异步将任务列表调用为 3 个 bunces 使用 SemaohoreSlim 调用任务的逻辑应该如何
SemaphoreSlim semaphoreSlim=new SemaphoreSlim()
tasks = tasks.Select(async x =>
{
await semaphoreSlim.WaitAsync();
try
{
await x();
}
finally
{
semaphoreSlim.Release();
}
}).ToList();