Запускаю поток, в котором есть такие строки:
if (!CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
0, NULL,NULL,&si,&pi ))
{
DWORD dwErrNo=GetLastError();
if (dwErrNo==2)
MessageBox(NULL,"File not found",NULL,MB_OK);
}
else { ... }
return 0
Жду завершения потока:
do ;
while (!AtlWaitWithMessageLoop( MyThread->m_hThread ));
Так вот, если выполняется MessageBox,
то AtlWaitWithMessageLoop(...) всегда возвращает 0,
хотя поток завершается (смотрел утилитой Process Viewer).
Если же до MessageBox дело не доходит, то все работает нормально.
В чем тут дело?
И вообще, насколько я понял из описания, AtlWaitWithMessageLoop
должен ждать завершения потока или нет?