Это часть моего кода для запуска внешнего приложения и ожидания его завершения sh:
DWORD WaitResult;
do
{
WaitResult = MsgWaitForMultipleObjects(1,
// only 1 wait object
&processInformation.hProcess, // worker thread
FALSE, // stop if any
INFINITE, // no timeout
QS_ALLINPUT);
if (WaitResult == WAIT_OBJECT_0 + 1)
{
// Handle windows message
MSG Msg;
while (PeekMessage(&Msg, nullptr, 0, (UINT)-1, PM_REMOVE))
{
TRACE3("%d %d %d\n", Msg.message, Msg.wParam, Msg.lParam);
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
} while (WaitResult != WAIT_OBJECT_0);
ASSERT(WaitResult == WAIT_OBJECT_0);
Это нормально, пока не возникнет проблема с вызывающим exe, которая вызывает мое приложение бесконечно ждать.
Я не указал время ожидания, потому что вызываемый exe синхронизирует события календаря с Outlook или Google. Итак, в зависимости от производительности пользователя rnet и синхронизируемых серверов с ...
Есть ли способ безопасно добавить тайм-аут, который не реализует фактический процесс?