如何运行多个任务并在所有任务结束后获得结果?

乔尔蒂

我怎样才能获得这些任务的结果(布尔)?

public static Random rnd = new Random();

static void Main()
{
    var tasks = new Task[10];

    for (int i = 0; i < 10; i++)
    {
        tasks[i] = new Task(async () => await T());
    }

    Task.WaitAll(tasks);

    for (int i = 0; i < tasks.Length; i++)
    {
        Console.WriteLine($"Task {i} result = {tasks[i].?????????}");
    }

    Console.ReadKey();
}

public static async Task<bool> T()
{
    await Task.Delay(500);
    return rnd.Next(2) == 1 ? true : false;
}
帕维尔·阿尼库斯基

您也可以使用 makeMain()方法async并使用WhenAll代替WaitAll. 并且只T()在分配Task给数组项使用,没有必要这样做new Task(async () => await T());

static async Task Main()
{
    var tasks = new Task<bool>[10];

    for (int i = 0; i < 10; i++)
    {
        tasks[i] = T();
    }

    await Task.WhenAll(tasks);

    for (int i = 0; i < tasks.Length; i++)
    {
        Console.WriteLine($"Task {i} result = {tasks[i].Result}");
    }

    Console.ReadKey();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

运行多个异步任务,并在所有任务完成后获得通知

并行运行多个任务(变量编号),并在所有任务完成后继续

每个异步内部的异步任务:在所有任务和子任务完成后运行回调

如何确保已取消的Celery任务在所有工作进程全部关闭并返回后再也不会运行

直到所有任务都在[asyncio]中完成后,如何立即获得某人任务的返回?

如何正确实现运行多次迭代并等待所有任务完成并在任务完成后成功终止的执行器

laravel-在队列完成所有任务后运行任务

如何获得所有芹菜任务?

如何在java中重复运行多个任务并在一定时间后停止它

仅在所有任务完成后才调用URLSession下载任务委托

asyncio:仅在所有其他任务正在等待时才运行任务

如何自动运行所有 gulp 任务?

如何运行多个任务,处理异常并仍返回结果

gulp任务完成所有文件后运行代码

如何汇总多个任务结果

运行所有 rake 任务?

多线程-仅在所有线程完成任务后才继续

Gradle-在所有子模块的测试阶段之后运行testReport任务

c#TaskFactory ContinueWhenAll在所有任务完成之前意外运行

有没有一种方法可以同步运行C#任务并在一行代码中获得结果?

如何在 Bazel 输出中获取所有任务结果

如何从等待非一般任务获得任务结果

如何从异步任务中获得结果

如何获得任务的结果或返回值?

如何获取当前正在运行的所有任务

如何只运行带有多个标签的任务?

动态加载多个JS文件并在所有文件就绪后触发回调

运行后运行任务

如何在所有项目中查找某种类型的任务?