弹来弹去跑马灯!

C# Task.WhenAll

.C# Task.WhenAll

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

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
        }

  

 结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 @   wgscd  阅读(436)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2017-03-22 webBrowser.Document.Cookie取不到HttpOnly的Cookie,取Cookie不完整
点击右上角即可分享
微信分享提示