Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

По потокам (Thread)   Найти похожие ветки 

 
Programist   (2003-03-04 16:06) [0]

Создаю поток:


M: TMyThread;
...
begin
M:=TMyThread.Create(False);
M.FreeOnTerminate:=True; //чтобы он завершился как Execute завериштся...
end;


1. Но вот как ему потом M.Free сделать???
2. И как его можно заврешить раньше, если цикла внутри нет, который бы проверил M.Treminated?


 
Strumpf ©   (2003-03-04 16:27) [1]

>Но вот как ему потом M.Free сделать???

Он сам убьется после завершения Execute.


 
MBo ©   (2003-03-04 16:34) [2]

вот только в конструктор нужно передать True, а после установки FreeOnTerminate сделать Resume


 
Programist   (2003-03-05 09:55) [3]

toStrumpf - точно убъётся???

toMBo - понял.


А как в поток передать изначально параметры?!


 
REA ©   (2003-03-05 10:03) [4]

До запуска (наверно) можно обычные переменные класса установить.

>2. И как его можно заврешить раньше, если цикла внутри нет, который бы проверил M.Treminated?

А вот это уже не так просто - стандартный Free насколько я помню выставляет Terminated и ждет завершения потока. Можно попробовать Suspend+Free, но тоже осторожно.
Дальше мои домыслы и безосновательные утверждения:
Там появляется какая-то разница между просто выходом и выходом при выходе из приложения или DLL. В разных версиях Delphi механизм выхода из потока разный.


 
NailS ©   (2003-03-05 12:16) [5]


> И как его можно заврешить раньше, если цикла внутри нет,
> который бы проверил M.Treminated?


А что там есть?

> Можно попробовать Suspend+Free, но тоже осторожно.

Не поможет. В деструкторе будет ожидаться завершение потока (D6).

BOOL TerminateThread(
HANDLE hThread, // handle to thread
DWORD dwExitCode // exit code
);




Страницы: 1 вся ветка

Текущий архив: 2003.03.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
3-53845
Yasha
2003-02-26 19:18
2003.03.17
копирование данных


3-53957
SergBBS
2003-02-26 15:22
2003.03.17
обновление данных


3-53909
Klim Samgin
2003-02-25 12:31
2003.03.17
Interbase + массивы


1-54035
dim-
2003-03-04 15:30
2003.03.17
как можно получить снимок с панели?


4-54362
Sodom
2003-01-24 13:00
2003.03.17
Хук WH_CBT