gpt4 book ai didi

c# - continuewith 任务未执行

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:39 28 4
gpt4 key购买 nike

我试图在这个例子中链接执行任务:

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());
}

我想做的是将一个继续任务绑定(bind)到集合中的最后一个任务。但是在示例中,只执行了第一个任务。当我检查集合时,第一个任务的状态是 RanToCompletion,而第二个任务的状态是 Created。我错过了什么吗?

最佳答案

prevTask t2 当我运行它时;你基本上说的是“当 t2 完成时,开始 t2” - 很明显这不会发生。重要的是,在 Last 运行时,两个 任务都已完成 - 因此未完成的“最后一个”任务是列表,t2

选项:

  • 显式使用 t1.ContinueWith
  • 使用类似Task.WhenAny 的东西

关于c# - continuewith 任务未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17672196/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com