public static async Task WhenAll()
        {
            var counter = new SharedCounter();
            var source1 = new ValueTaskCompletionSource();
            var source2 = new ValueTaskCompletionSource();
            var source3 = new ValueTaskCompletionSource();

            ThreadPool.QueueUserWorkItem(state =>
            {
                counter.Inc();
                Thread.Sleep(100);
                source1.Complete();
            });
            ThreadPool.QueueUserWorkItem(state =>
            {
                counter.Inc();
                Thread.Sleep(200);
                source2.Complete();
            });
            ThreadPool.QueueUserWorkItem(state =>
            {
                counter.Inc();
                Thread.Sleep(150);
                source3.Complete();
            });
            await ValueTaskSynchronization.WhenAll(source1.Task, source2.Task, source3.Task);

            Equal(3, counter.Value);
        }