Вниз
Скачать: 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.024 c
3-1109616177
sloug
2005-02-28 21:42
2005.03.27
Простой отчет


6-1106301265
Соловьев
2005-01-21 12:54
2005.03.27
idFTP или NMFTP и Firewall


1-1110525335
seregka
2005-03-11 10:15
2005.03.27
Добавление информации в exe


1-1110870416
Object
2005-03-15 10:06
2005.03.27
Обработчик события по нажатию <B>правой </B>кнопки мышки на TPane


1-1110369690
Tashtagol
2005-03-09 15:01
2005.03.27
TTreeView и TStringGrid




   Наверх