Код IT Загрузка примера кода…

C# main.cs
// Ограничение параллелизма: одновременно работает до 32 задач
var gate = new SemaphoreSlim(32);
var tasks = items.Select(async item =>
{
    await gate.WaitAsync(ct);
    try
    {
        await ProcessAsync(item, ct);
    }
    finally
    {
        gate.Release();
    }
});

await Task.WhenAll(tasks);
// Ограничение параллелизма: одновременно работает до 32 задач
var gate = new SemaphoreSlim(32);
var tasks = items.Select(async item =>
{
    await gate.WaitAsync(ct);
    try
    {
        await ProcessAsync(item, ct);
    }
    finally
    {
        gate.Release();
    }
});

await Task.WhenAll(tasks);