C#多线程开发之----List Task有返回值

C#中的List<T>是一个泛型集合类,可以用来存储任意类型的元素。在多线程环境下,可以使用Task<TResult>类来执行异步操作并返回结果。通过将List<T>与Task<TResult>结合使用,可以实现多线程处理带有返回值的操作,从而提高程序的效率和性能。

以下是使用List<T>和Task<TResult>实现多线程处理带有返回值的操作的优点:

  1. 提高程序的性能:在多线程环境下,程序的执行速度会得到显著提升。这是因为多线程可以将一个任务分成多个子任务,并分别在不同的线程上执行,从而充分利用计算机的多个CPU核心。
  2. 更好的响应性能:在处理大量数据时,如果使用单线程,程序会一直等待任务完成而无法响应其他操作。而使用多线程,可以将任务分解成多个子任务,并在不同的线程上执行。这样可以使程序在等待某个子任务完成时,同时处理其他子任务,从而提高程序的响应性能。
  3. 更好的可扩展性:随着计算机硬件的发展,计算机的CPU核心数越来越多。使用多线程可以充分利用计算机的多个CPU核心,从而提高程序的扩展性。这样可以使程序在未来的硬件平台上更好地运行。
  4. 更好的并发性:在多线程环境下,可以同时执行多个操作。这样可以使程序在处理多个任务时更加高效和流畅。
  5. 更好的可维护性:使用多线程可以将复杂的任务分解成多个简单的子任务,每个子任务都可以单独测试和维护。这样可以提高代码的可维护性和可测试性。

使用List<T>和Task<TResult>实现多线程处理带有返回值的操作可以提高程序的性能、响应性能、可扩展性、并发性和可维护性。

private  async void button24_Click(object sender, EventArgs e)
        {
            // 写法一:创建多个任务
            var tasks = new List<Task<string>>
            {
                Task.Factory.StartNew(() => DoWork(1)),
                Task.Factory.StartNew(() => DoWork(2)),
                Task.Factory.StartNew(() => DoWork(3))
            };

            var results = await Task.WhenAll(tasks);
            // 输出结果
            Console.WriteLine("任务结果: " + string.Join(", ", results));


            //写法二:
            List<Task<string>> taskList = new List<Task<string>>();
            taskList.Add(
                Task.Run(()=> {
                    return DoWork(1);
                })
                );
            taskList.Add(
                Task.Run(() => {
                    return DoWork(2);
                })
                );
            taskList.Add(
                Task.Run(() => {
                    return DoWork(3);
                })
                );
            taskList.Add(
                Task.Run(() => {
                    return DoWork(4);
                })
                );
            // 等待所有任务完成并获取结果
            var results2 = await Task.WhenAll(taskList);
            Console.WriteLine("任务结果2: " + string.Join(", ", results2));

            Console.WriteLine("任务结果: " + DateTime.Now.Hour); 
        }

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值