c# - 我如何从WhenAll(任务数组)中获取结果

标签 c# multithreading

我有以下代码。

var tasks = new[]
    {
        Task.Factory.StartNew(() => GetSomething1()),
        Task.Factory.StartNew(() => GetSomething2()),
        Task.Factory.StartNew(() => GetSomething3())
    };

var things = Task.WhenAll(tasks);

如何分别从所有三个任务中获得结果并打印?

最佳答案

为了分别获得结果,您可以通过多种方式来执行以下操作:

var task1  = GetSomething1();
var task2  = GetSomething2();
var task3  = GetSomething3();

// your method will continue when everything's completed, but you won't tie up a thread to just hang around until that time.
await Task.WhenAll(task1, task2, task3);

var result1 = await task1;
var result2 = await task2;
var result3 = await task3;

关于c# - 我如何从WhenAll(任务数组)中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59394605/

相关文章:

java - 使用 Java Swing GUI,如何在后台运行服务器套接字并仍然使用 GUI?

java - 有或没有持有者的单例 = 惰性初始化 vs 急切初始化?

java - while 循环阻塞其他线程

c# - 如何将 progressIndicator 定位到 Windows Phone 的中心?

c# - 通过 C# 在 QuickBooks 中创建新项目

c# - 跨平台桌面应用程序 - Windows+Mac+Linux

c# - Google recaptcha 公钥和私钥

Java 优化了读/写共享资源/内存位置而无需 Atomic API,例如原子整数

java - 恢复卡住的 quartz 作业

c# - HTTPOnly 将 cookie 过期时间设置为 session