定义任务而不并行触发它

Defining a task without firing it parallel

您好,有什么方法可以在不触发任务的情况下定义任务吗? 我需要在没有触发的情况下获取任务对象。

 ------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

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

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

    // Later on
    await methodToInvoke();
}

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