【发布时间】:2011-05-28 22:38:59
【问题描述】:
我目前正在编写一个程序,该程序将同时运行多个程序组,而其他程序则单独运行。
if( WAIT_FAILED == WaitForMultipleObjects(numberOfProgramsRan, &information[i].hProcess, TRUE, INFINITE) ) {
wcerr << L"Failure waiting for process" << endl;
}
numberOfProgramsRan 是我在循环中运行的程序数。
&information[i] 是一个 vector 持有我的创建过程中的过程信息
当我在 for 循环中创建进程时,如果创建了两个或更少的进程(因此两个程序被传入运行),我的程序将在运行我的下一个进程之前等待。
如果创建两个以上的进程(或在我的向量中传递两个以上的程序)我的WaitForMultipleObjects 它会失败。
如果我需要进一步解释我的问题,请告诉我。
感谢您的帮助
【问题讨论】:
-
你看过
GetLastError()的结果了吗? -
我不希望
&information[i].hProcess是正确的。可以给我们看一下information的声明吗? -
PROCESS_INFORMATION pi = {0};信息.push_back(pi);然后我在创建过程中使用 information[i] insead pi
-
@Johnston 如果是这样的话,numberOfProgramsRan 应该永远只有 1,因为只有一个 information[i].hProcess
-
@nos i 循环它以在向量中的所有进程上运行
标签: c++ multithreading winapi concurrent-programming