定义任务而不将其并行触发

时间:2018-06-17 15:36:03

标签: c# async-await task-parallel-library

你好,有没有办法定义任务而不解雇它们? 我需要抓住一个没有它的任务对象。

 ------code-------------
    Task A=Task.Run(func1);
    Task B=Task.Run(func2);
    -----some more code----

在这个例子中,A任务在与程序其余部分并行(在另一个核心上)定义的行中被触发。

我希望能够根据A触发任务B,但仍然与程序的其余部分并行。

Something like :
    ---code---
    Task A= something without starting it
    Task B= something without starting it

    B.ContinueWith(A);
    ---code----

P.S我想从主线程并行编排一些任务,对于这种情况我不需要Task.WhenAll/When Any

1 个答案:

答案 0 :(得分:3)

您可以像这样使用Func<Task>

async Task Main()
{
    var methodToInvoke = new Func<Task>(() => MyMethod())

    // Later on
    await methodToInvoke();
}

async Task MyMethod()
{
    await Task.Delay(5000);
}