Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Остановка потока [D7, WinXP]


Страницы:   1 2 3 4

Destroyer ©   (2006-08-26 21:28:00) 

Задача выполняется в потоке. По нажатию кнопки на форме надо остановить выполнение потока. Проверять флаг постоянно на отключение - не подходит. Нужно что-то типа TimerThread.Destroy.
Делаю так:

protected
   procedure Execute; override;
 public
 constructor Create(FPath: String; Fflag: boolean; RProcType:string; FExt:string);
 constructor Destroy;
 end;

...
constructor TimerThread.Destroy;
begin
exit;
end;
Но так, выдается ошибка неверный дескриптор.
Как правильно мгновенно остановить поток?


Destroyer   (2006-08-26 23:06:00) [61]

BOOL TerminateThread(

   HANDLE hThread, // handle to the thread
   DWORD dwExitCode  // exit code for the thread
  );
Где взять хэндл потока?
Поток создается так:
TimerThread.Create(dir1,false,'Param1',Ext);


Ketmar   (2006-08-26 22:20:00) [62]

> [3] Fay ©   (26.08.06 22:18)
вах! а я и не заметил. %-)


Fay   (2006-08-26 22:18:00) [63]

> constructor Create(FPath: String; Fflag: boolean; RProcType:string; FExt:string);
> constructor Destroy;
Это просто бред


DVM   (2006-08-26 21:34:00) [64]


> Проверять флаг постоянно на отключение - не подходит

именно это самый быстрый и корректный путь.


> Как правильно мгновенно остановить поток?

Мгновенно, но не всегда правильно TerminateThread()


Ketmar   (2006-08-26 21:29:00) [65]

правильно -- проверять флаг.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо