Убить поток
От: Аноним  
Дата: 17.05.07 07:21
Оценка:
Создаю поток. Он вызывает функцию, в которой есть задержка...

procedure Delay(dwMilliseconds: Longint);
 var
   iStart, iStop: DWORD;
 begin
   iStart := GetTickCount;
   repeat
     iStop := GetTickCount;
     Application.ProcessMessages;
   until (iStop - iStart) >= dwMilliseconds;
 end;

Для тестирования ставлю Delay(1000000000).
Затем в какой-то момент мне нужно полность уничтожить поток
Реализовано:

IF Assigned (ParcelThread) Then
      Begin
      TerminateThread(ParcelThread.Handle,ParcelThread.ThreadExitCode);
      FreeAndNil(ParcelThread);
      End;

Но когда пытаюсь закрыть прогу, оказывается поток работает (прога не закрывается, причем ошибок нет)
Подскажите как его зарубить.
P.S. Могу реализовать только часть с потоком, то что он вызывает реализовано не мной
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.