-1

考虑以下延续:

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

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

  1. MethodA执行。
  2. MethodB完成后执行MethodA
  3. MethodC完成后执行MethodB

如果我希望在完成MethodC后继续MethodA。(而不是等待MethodB

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

4

1 回答 1

2

您可以启动另一个任务MethodBMethodC以便它们在MethodA完成后并行执行:

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

    Task.Factory.StartNew(() => {
        MethodC();
    });
});
于 2013-09-14T13:37:35.610 回答