Вниз
Скачать: CL | DM;

Как уничтожить все програмой запушеные Thread ы?   Найти похожие ветки 

← →
Studentas   (2005-03-16 13:46) [0]

Доброго всем дня
Мож кто знает Как при закрытии проги уничтожить все програмой запушеные Thread"ы?


← →
P.N.P. ©   (2005-03-16 13:49) [1]

Сами уничтожатся. При уничтожении процесса (твоей проги).


← →
Digitman ©   (2005-03-16 13:52) [2]


> при закрытии проги уничтожить все програмой запушеные Thread"ы


трэды процесса принадлежат этому процессу
нет процесса - нет и трэдов, т.е. процесс (так или иначе) завершился (уничтожен) - исчезли (уничтожены) и трэды, принадлежащие процессу


← →
КаПиБаРа ©   (2005-03-16 13:52) [3]

Studentas   (16.03.05 13:46)
А их координаты у тебя имеются?


← →
КаПиБаРа ©   (2005-03-16 13:59) [4]

Digitman ©   (16.03.05 13:52) [2]
Я точно не помню но вроде при завершении процесса треды прерываются так, что не выполняются команды после finally в методе Execute. Или я ошибаюсь?


← →
Digitman ©   (2005-03-16 14:18) [5]


> Или я ошибаюсь?


не ошибаешься.


← →
Digitman ©   (2005-03-16 14:21) [6]


> КаПиБаРа ©   (16.03.05 13:59) [4]


Мелкомягкая ОС знать ничего не знает ни о каких-то там
finally и иже с ней.

Мелкомягкая ОС просто УНИЧТОЖАЕТ трэд как ОС-объект.


← →
КаПиБаРа ©   (2005-03-16 14:32) [7]

Если нужно "по хорошему" завершить поток. То в onCloseQuery главной формы делай Terminate и WaitFor для всех потоков.


← →
Digitman ©   (2005-03-16 14:40) [8]


> делай Terminate и WaitFor для всех потоков.


угу... а потокам, созданным Studentas"ом, монопенисуально состояние флага FTerminated ...


← →
Studentas   (2005-03-16 14:45) [9]

А как получить список фсех Thread"ов програмы

Дело в том что я использую компонент- тот создает кучу  Thread"ов а когда прогу вырубаю то процесс еше может несколько сек-мин жить

Вот я и хочу их всех


← →
КаПиБаРа ©   (2005-03-16 14:47) [10]

Digitman ©   (16.03.05 14:40) [8]
Да. Я предложил вариант для частного случая, когда потоки реагируют на FTerminated и необходимо выполнить, какие то действия  при завершении метода Execute, например подтвердить транзакцию.

В общем случае ответ был дан в [1] и [2].


← →
Digitman ©   (2005-03-16 14:47) [11]


> Studentas   (16.03.05 14:45) [9]
> А как получить список фсех Thread"ов програмы


нахрен он тебе сдался ?


>  когда прогу вырубаю то процесс еше может несколько сек-мин
> жить
>
> Вот я и хочу их всех


"вырубай" свою "прогу" извне - вызовом Terminateprocess() .. и будет тебе счастье ..


← →
Digitman ©   (2005-03-16 14:49) [12]


> КаПиБаРа ©   (16.03.05 14:47) [10]


видишь ли, автор в принципе не понимает разницы между принудительным уничтожением трэда и его корректным завершением


← →
DiamondShark ©   (2005-03-16 14:51) [13]


> Studentas   (16.03.05 14:45) [9]

Тогда смотри документацию к тому компоненту и ищи там описание корректного завершения.


← →
КаПиБаРа ©   (2005-03-16 14:54) [14]

Digitman ©   (16.03.05 14:49) [12]
Я думал что понимает.


← →
Digitman ©   (2005-03-16 14:57) [15]


> КаПиБаРа ©   (16.03.05 14:54) [14]
> Я думал


думают известно кто)


← →
Studentas   (2005-03-16 15:10) [16]

А сразу про Terminateprocess() незя было?


← →
КаПиБаРа ©   (2005-03-16 15:15) [17]

Digitman ©   (16.03.05 14:49) [12]
А halt не поможет?



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.023 c
1-1110529519
VZup
2005-03-11 11:25
2005.03.27
Цвет под указателем мыши


14-1109928883
DelphiN!
2005-03-04 12:34
2005.03.27
Проблемма после переустановки версии компонентов


14-1110352096
atr
2005-03-09 10:08
2005.03.27
Отладка программы. Help!


9-1104316737
Trimp
2004-12-29 13:38
2005.03.27
Как задать SmoothNormal?


1-1110563816
Evg12
2005-03-11 20:56
2005.03.27
Собрать несколько файлов в один.




   Наверх