如何在TPL中选择各种任务继续策略

时间:2013-09-14 13:34:15

标签: c#-4.0 parallel-processing task-parallel-library

考虑以下延续:

Task.Factory.StartNew(()=>
{
    MethodA();
})
.ContinueWith((t)=>
{
    MethodB();
})
.ContinueWith((t)=>
{
    MethodC();
});

据我所知,执行将是这样的:

  1. MethodA执行。
  2. {li> MethodBMethodA完成后执行。 {li> MethodCMethodB完成后执行。

    如果我希望在MethodC完成后继续MethodA,该怎么办?(而不是等待MethodB

    我正在寻找除手动声明任务变量之外的解决方案,而是希望使用流利工厂的方法排序。

1 个答案:

答案 0 :(得分:2)

您可以为MethodBMethodC启动其他任务,以便MethodA完成后并行执行:

Task.Factory.StartNew(()=>
{
    MethodA();
})
.ContinueWith((t)=>
{
    Task.Factory.StartNew(() => {
        MethodB();
    });

    Task.Factory.StartNew(() => {
        MethodC();
    });
});