Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: 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 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.038 c
1-1110981702
Vengrov
2005-03-16 17:01
2005.03.27
Использование FileWrite


1-1110393435
Tirex
2005-03-09 21:37
2005.03.27
принудительное использование другого шрифта всей программой


6-1106415080
Dimoon2005
2005-01-22 20:31
2005.03.27
Скачать страницу целиком


3-1109239539
Dimedrol
2005-02-24 13:05
2005.03.27
TTable + varchar(500)


1-1110380588
Вован_
2005-03-09 18:03
2005.03.27
Как убрать назойливый динь.wav при выходе из TEdit?