c# - 解决依赖构建的算法是什么?

标签 c# algorithm sorting

我正在构建一个类似于项目构建的系统。一个项目有一组输入和输出。一个项目可能依赖于其他项目。我可以使用拓扑排序并找到我必须评估项目的顺序。但是,我如何并行构建。 Toposort 不会对可以并行构建的项目给予相同的排名。另外,我该如何进行增量构建。

最佳答案

您可以并行构建没有任何依赖项的所有项目。构建后从图中删除构建的项目并再次构建没有依赖项的项目。重复直到图形为空。

伪代码

  1. 构建项目图
  2. 验证图(例如循环依赖)
  3. 查找所有没有依赖项且不在构建中的项目
  4. 开始构建所有在 3 中找到的并将它们标记为正在构建
  5. 等待其中一个构建结束并从图中移除已构建的项目
  6. 如果图不为空转到3
  7. 等待休息构建

关于c# - 解决依赖构建的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33857423/

相关文章:

algorithm - ARM 汇编的 PRNG?

algorithm - 路径查找 : a detailed description for a layman of the D* algorithm

ajax - 为支持项目 "bumping"的事件流获取新项目

java - java中按子列表中的属性对列表进行排序

javascript - 如何对 JS 对象文字进行排序?

c# - 模拟 ctrl key down 事件和 ctrl key up 事件后 Ctrl key keep down

c# - 术语 "true"面向对象是什么意思

c# - Linq to XML - 根据 if 语句设置 Xelement 值

c# - 给定一个 Uri 和一个 UriTemplate,如何获取模板参数值?

node.js - 在模型的远程方法中使用 find 时的环回顺序过滤器,错误 :