gpt4 book ai didi

c# - 循环内的嵌套任务

转载 作者:行者123 更新时间:2023-11-30 22:14:31 24 4
gpt4 key购买 nike

我正在尝试在循环内实现嵌套任务 - 这是我目前的模式,但我不确定,因为这是我第一次使用并行任务库。

父(层)任务应等待子(节点)任务完成。

    public int NestedTask(IEnumerable<MatchTier> tierNodes)
{
var tier = Task<int>.Factory.StartNew(() =>
{
Task<int> node = null;

foreach(var n in tierNodes)
{
node = Task<int>.Factory.StartNew(() =>
{
// Task logic goes here

return 1; // temp placeholder
});

// if a valid value is returned then exit this loop
}

return node.Result;

});

return tier.Result;
}

子节点循环直到返回第一个有效值,然后退出循环,将有效值传递给父节点。

子节点和父节点都需要超时。每个 child 将被允许运行大约 3 秒,之后进程将超时并询问下一个节点。

父级的总超时值约为 15 - 20 秒,在此之后,如果未收到有效响应,它也应该终止。

这看起来合乎逻辑吗?

最佳答案

等待任务完成

node.Wait();

等待任务直到一些滴答声完成

node.Wait(timeToWait);

或者等待它们全部完成

Task.WaitAll(tasks);

你应该阅读 here了解更多信息

关于c# - 循环内的嵌套任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460464/

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