程序在使用 system() 启动另一个可执行文件时停止

Program stops when starting another executable using system()

本文关键字:可执行文件 另一个 启动 system 程序      更新时间:2023-10-16

我有一个循环,用于检查某个进程是否处于活动状态。如果进程未处于活动状态,则主程序使用system()调用启动它。例:

#define MODERATING_INTERVAL 1000
...
while (true) {
if (!isProcessRunning())
system("helper.exe");
Sleep(MODERATING_INTERVAL);
}

我的问题是一切运行正常,但只要helper.exe程序正在运行,主程序就会暂停,因此循环不会迭代。

我自己找不到解决方案,所以我问:是否可以在调用的程序运行时让示例循环继续迭代?

提前谢谢。

这是system的正常行为。如果要启动与当前程序同时运行的新进程,则需要使用CreateProcess