如何使用 Task.WhenAll 运行返回不同数据类型的任务列表

问题描述 投票:0回答:1

所以我有两种返回不同数据类型的方法。我想同时运行它们。并从两者中得到结果。

public async Task<int> Ta1()
        {
            await Task.Delay(100);
            return 100;
        }

        public async Task<string> Ta2()
        {
            await Task.Delay(200);
            return "hello";
        }

主函数创建任务列表并通过 Task.WhenAll 调用它

var tasks = new List<Task>();
            tasks.Add(Te1());
            tasks.Add(Te2());

            await Task.WhenAll(tasks);
            
            var a1= //get value from Tel1;
            var a2 = //get value from Tel2;
c# asynchronous task
1个回答
1
投票

你可以这样做


var tasks = new List<Task>();
var ta1 = Ta1();
var ta2 = Ta2();
tasks.Add(ta1);
tasks.Add(ta2);

await Task.WhenAll(tasks);

var a1 = ta1.Result;//get value from Tel1;
var a2 = ta2.Result;//get value from Tel2;
© www.soinside.com 2019 - 2024. All rights reserved.