阻止 Task.Run 方法直到完成

Block Task.Run method until done

我有一些方法需要 运行,其中一个应该 运行 作为一个不同的线程,所以我使用 Task.Run 和 lambda,虽然我想要next 方法在任务完成后立即启动。

例如我希望 LastJob() 将在 MoreWork() 完成后开始:

public void DoSomeWork()
{
    Task.Run(() => MoreWork());
    LastJob();
}

你可以使用asyncawait关键字 link

public async void DoSomeWork()
{
    await Task.Run(() => MoreWork());
    LastJob();
}

Coy 可以使用 ContinueWith 方法,如下所示:

public void DoSomeWork()
{
    var task = Task.Run(() => MoreWork());
    task.ContinueWith(() => LastJob()) ;
}