首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未执行continuewith任务

未执行continuewith任务
EN

Stack Overflow用户
提问于 2013-07-16 16:58:43
回答 1查看 366关注 0票数 1

在这个例子中,我尝试链接任务的执行:

代码语言:javascript
复制
static List<Task> clsTaskList = new List<Task>();

private static void Tasks2()
{
    Task t1 = new Task(() =>
    {
        Console.WriteLine("Main task started.");
        Thread.Sleep(15000);
        Console.WriteLine("Main task finished");
    });

    Task t2 = new Task(() =>
    {
        Console.WriteLine("Task 2 started");
        Thread.Sleep(15000);
        Console.WriteLine("Task 2 finished");
    });

    clsTaskList.Add(t1);
    t1.Start();

    clsTaskList.Add(t2);

    Task prevTask = clsTaskList.Last(p => p.IsCompleted == false);
    prevTask.ContinueWith(t => t2.Start());
}

我尝试做的是将一个continue任务绑定到集合中的最后一个任务。但在本例中,只执行了第一个任务。当我检查集合时,第一个任务的状态是RanToCompletion,而第二个任务的状态是Created。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 17:06:57

当我运行prevTask时,它是t2;您基本上说的是“当t2完成时,启动t2”-所以很明显这不会发生。重要的是,在Last运行时,两个任务都没有完成-因此,没有完成的“最后”任务是列表中的最后一个任务t2是合理的。

选项:

  • 显式地使用类似于Task.WhenAny

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17672196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档