HANDLE hThread;
DWORD dwThreadID;
DWORD dwExitCode;
DWORD __stdcall Thread(LPVOID)
{
MainForm->OnBeforDevide->Execute();
MainForm->StartToDevide->Execute();
MainForm->OnAfterDevide->Execute();
return 0;
};
...
...
void __fastcall TMainForm::StartThreadExecute(TObject *Sender)
{
hThread = CreateThread(NULL, 0, Thread, Application->MainForm->Handle, 0, &dwThreadID);
}
...
...
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
GetExitCodeThread(hThread, &dwExitCode);
TerminateThread(hThread, dwExitCode);
}
Создание потока
Господа, подскажите,что не так. ВCB 6 создаю поток. Когда он отрабатыват и закрываю форму все нормально. Когда же во время работы потока закрываю фрму выскакивает сообщение, "Отказано в доступе" или "Неверный дискриптор окна"
Кроме того, TerminateThread, как указано в MSDN - [COLOR=orangered]опасная функция[/COLOR]. Для завершения потока лучше использовать другой способ - событие или флаг. MSDN - бесценный кладезь информации.
Цитата:
Originally posted by fellow
MSDN - бесценный кладезь информации.
MSDN - бесценный кладезь информации.
Спасибо. MSDN то есть, но там почему-то не посмотрел. Смотроел в книге. Теперь еще и MSDN почитаю.