Доброго времени суток, уважаемые коллеги!
У меня имеется программа, в которой есть цикл ожидания события еще до основного конструктора:
while(1)
{
  DWORD dwRet = WaitForSingleObject(hSync, 0);
  if (dwRet == WAIT_OBJECT_0)
  {
    ResetEvent(hSync);
    break;
  }
  Sleep(200);
}
try
{
  Application->Initialize();
  Application->CreateForm(__classid(TForm1), &Form1);
}
Всё работает так как и задумывалось, но появилась проблема - если программа находится в цикле ожидания и в этот момент попытаться перезагрузить компьютер, то появится окошко с сообщением, что процесс не может завершиться самостоятельно. Очень нужно избежать этой ситуации, но пока никаких адекватных идей не нашлось.
Скажите, есть ли какая-то возможность на этом этапе отследить событие OnClose или сделать что-то еще, чтобы при перезагрузке система самостоятельно завершала процесс?