gpt4 book ai didi

c# - 用于测试多个项目并可能放弃的并行模式

转载 作者:行者123 更新时间:2023-11-30 17:19:44 25 4
gpt4 key购买 nike

我有一个问题,我认为它很适合并行处理,但我不确定如何在 C# 中准确表达它。通常在这个程序中,我会在几个对象上运行一个昂贵的测试。我正在测试以确保“我可以前进”,所以我需要知道这些测试是否失败。然而,如果任何测试失败,整个事情就会失败,整个功能应该退出。在伪代码中:

...
var guys = getGuysToProcess().ToList();
foreach (myGuys guy in guys) {
if (!guy.TestForPossibleBadness())
return false;
}

C# 中的哪种模式最能让我表达这一点并并行测试它们?如果其中任何一个失败,则应终止其他测试,因为它们的结果无关紧要。

最佳答案

既然你提到了 TPL,你也有 PLINQ:

// untested
bool ok = getGuysToProcess().AsParallel().All(g => !g.TestForPossibleBadness());

正如@mquan 指出的那样,这可能不是最有效的。我假设以下可能会更快(但我不是 100% 确定):

// untested
bool ok = ! getGuysToProcess().AsParallel().Any(g => g.TestForPossibleBadness());

关于c# - 用于测试多个项目并可能放弃的并行模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4660323/

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