阻止Task.Run方法直到完成

时间:2015-01-31 00:17:13

标签: c# multithreading task

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

例如,我希望LastJob()MoreWork()完成后启动:

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

2 个答案:

答案 0 :(得分:1)

您可以使用asyncawait关键字 link

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

答案 1 :(得分:0)

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

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