.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
using System.Linq;

public class Program
{
    public static async Task Main()
    {
        Task[] tasks = Enumerable.Range(1, 100_000).Select(async _ =>
        {
            await Task.Delay(1000);
        }).ToArray();
        Console.WriteLine($"Tasks: {tasks.Count(t => t.IsCompleted):#,0} / {tasks.Length:#,0}");
        Thread.Sleep(500);
        Console.WriteLine($"Threads.Count: {Process.GetCurrentProcess().Threads.Count:#,0}");
        await Task.WhenAll(tasks);
        Console.WriteLine($"Tasks: {tasks.Count(t => t.IsCompleted):#,0} / {tasks.Length:#,0}");
    }
}
;