【问题标题】:How to select various Task Continuation strategies in TPL如何在 TPL 中选择各种任务延续策略
【发布时间】:2013-09-14 13:34:15
【问题描述】:

考虑以下延续:

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

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

  1. MethodA 执行。
  2. MethodBMethodA 完成后执行。
  3. MethodCMethodB 完成后执行。

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 2011-12-03
      • 2012-03-29
      • 1970-01-01
      • 2014-11-27
      • 2012-02-22
      相关资源
      最近更新 更多