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

时间:2018-10-15 14:47:42

标签: c++ winapi

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

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:4)

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