如何完全同时运行4个进程?

时间:2016-08-05 13:34:47

标签: c# .net process

我需要完全同时运行4个进程,怎么做?

Process.Start();
Process.Start();
Process.Start();
Process.Start();

当我这样做时,所有进程之间有一个毫秒的差异。我不能有任何分歧。

感谢所有答案。

1 个答案:

答案 0 :(得分:6)

这在托管堆栈上是不可能的。您没有对流程执行的严格控制。 如果您需要更严格的控制,则需要使用本机代码,C,C ++,汇编。此外,您需要严格控制流程执行,这意味着您需要使用RTOS(实时操作系统)。在任何情况下,Windows(非实时的不确定执行引擎)都无法实现这一点。

您可以通过构建自己的执行引擎然后管理线程来伪控制它,但这只会让您获得伪控制。最后,在许多情况下,它仍然会相隔毫秒。

RTOS只是真正的RTOS,因为架构师对要运行的所有任务运行分析,并确定它们是否可以在截止日期前执行。 这与同时启动它们无关。为此,您实际上必须为芯片构建API构建固件,您可以指示进程启动,并且所有处理器将启动加载的进程。换句话说,如果你想这样做,你必须深入到金属并构建API,允许每个处理器与另一个处理器同步启动。

有可能使用像C ++这样的CUDA(GPU计算)并且需要nVidia。 OpenGL是开放堆栈,可以在任何GPU上执行,但事实上C#是一个托管堆栈,因此您必须转到本机代码,并且还可以访问允许进程同步的硬件API。