弹来弹去跑马灯!

C# Task.WhenAll

.C# Task.WhenAll

有时候我们需要同时执行一些操作,然后把这些操作的结果进行汇总,以达到用异步处理降低操作耗时的效果,此时我们会考虑使用Task,而Task.WhenAll则排上了用场。

 

 async void TestTaskWhenAll()
        {
            var total =10;
            Task<string>[] tasks = new Task<string>[total];
            for (int i = 0; i < total; i++)
            {
                tasks[i] =  Convert("test "+ i );
            }
            await Task.WhenAll(tasks);
            foreach (var task in tasks)
            {
                Debug.WriteLine("task.Id =" + task.Id + "  task.Status=" + task.Status + " result:"+ task.Result);

            }


            return;
        }

 Random rnd = new Random();
        async Task Convert(string str)
        {

            await  Task.Delay(rnd.Next(1000,6000));
            Debug.Print(str+" OK");
            return "task " + str;
         }

  

 结果:

test 5 OK
test 7 OK
test 9 OK
test 4 OK
test 2 OK
test 8 OK
test 1 OK
test 6 OK
test 10 OK
test 0 OK
test 3 OK
task.Id =4894  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462530097716
task.Id =4896  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462515158794
task.Id =4898  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462508434632
task.Id =4900  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462530342270
task.Id =4902  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462508404465
task.Id =4904  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462503610679
task.Id =4906  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462518147200
task.Id =4908  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462504196737
task.Id =4910  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462510625275
task.Id =4912  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462505016507
task.Id =4914  task.Status=RanToCompletion result:task C:\Users\Administrator\source\repos\MSTextSpeech\MSTextSpeech\bin\x86\Debug\net48\temp-637835462526342482

  

posted @ 2022-03-22 11:38  wgscd  阅读(455)  评论(0)    收藏  举报