所以我有一个简短的程序,必须运行一些其他程序并等待它们完成。
目前我在我的主要方法中这样做:
// Connect to the service
cout << "Starting the service..." << endl;
status = system((SCRIPT_DIR + "/my_service").c_str());
if (WIFEXITED(status)) {
cout << "Started service successfully" << endl;
} else {
cerr << "Failed to start the service." << endl;
return (EXIT_FAILURE);
}
在我的主要部分看来有点粗糙,因为我必须多次这样做;这是应该做的吗?或者我应该将其分解为类或函数,以便我没有在main中检查所有这些错误?
欢迎任何其他建议!
答案 0 :(得分:0)
同步方式是在阻塞函数内启动服务并返回退出值。你一个接一个地启动服务并等待它们完成。
异步:
所有服务都可以并行运行。您可以启动线程并加入它们。因此,当他们完成后,您将检索退出值。
或者,你可以fork()并使用管道让父亲给各个孩子发出命令(启动不同的程序)
答案 1 :(得分:0)
您可以为要运行的每个“其他程序”创建一个主题。但是,这可能只有在每个“其他程序”的工作独立于其他“其他程序”的结果或变量时才有效