返回顶部

Task 带参数和返回值的多线程调用

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
28
29
static void Main(string[] args)
        {
 
            // 无参数异步
            var tasks = new List<Task>();
            for (int i = 0; i < 5000; i++)
            {
                tasks.Add(Task.Run(() => { Console.WriteLine(i); }));
            }
            Task.WaitAll(tasks.ToArray());
 
            // 带参数异步
            var taskList = new List<Task<List<int>>>();
            for (int i = 0; i < 5000; i++)
            {
                taskList.Add(Task.Factory.StartNew(state => {
                    var value= state as int?;
                    return new List<int> { value ?? 0 };
                },i));
            }
            Task.WaitAll(taskList.ToArray());
 
            List<int> list = new List<int>();
            foreach (var item in taskList)
            {
                list.AddRange(item.GetAwaiter().GetResult());
            }
            Console.ReadKey();
        }

  参考链接:https://blog.51cto.com/u_15162069/2755137

posted @   SportSky  阅读(265)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
作者:SportSky 出处: http://www.cnblogs.com/sportsky/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。
点击右上角即可分享
微信分享提示