我可以 "force" 并行执行依赖目标吗?

Can I "force" parallel execution of dependent targets?

假设我有一个目标 A 依赖于 B,但我可以 运行 AB 并行。 Shake 这可能吗?似乎 need ... 使动作顺序进行,这当然是完全有道理的,但这是 "special" 的情况。

给定:

"A" %> \_ -> do need ["B"]; ...
"B" %> \_ -> ...

如果您执行 need ["A","B"],那么它将同时启动 AB,但是 A 操作将立即暂停,直到 B 完成.为什么并行 运行 AB 是安全的?如果 A 计算的动作需要在 B 更改时重新 运行,但实际上并不使用 B 本身,您可以重新排序为:

"A" %> \_ -> do ...; need ["B"]

但是,如果 A 中的操作实际上使用了 B 那么就没有真正的方法可以 运行 它们并行。