Есть приложение своеобразный шетдулер который мониторить приборы и по некоторому "сложному" алгоритму стратует задачи.
В том случае если по какйто причине запущеная им задача зависла и не успела завершится к моенту следующего запуска он должен убить ее и запустить заново для этого вставлен следующий кусок
DAC_Stat d=m_Counts[id];
TRY
{
this->WriteLog (hFileLog,CString(_T("Terminate old DL proc ")) );
TerminateProcess(sRun.hProc ,0);
this->WriteLog (hFileLog,CString(_T("Terminate sucsses ")) );
}CATCH_ALL(pE)
{
this->WriteLog (hFileLog,CString(_T("Terminate error ")) );
}END_CATCH_ALL;
Приложение в некий произволный момент оработав произвольное число циклов вылетает, в логе последней строчкой всегда
"Terminate old DL proc "
В чем проблема?