|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
||||||
Delphi 6-7 Как сделать чтобы поток не висел в Console Application07.01.2022, 16:43. Показов 4026. Ответов 62
Метки нет (Все метки)
Дело в том что в console application поток продолжает висеть и freeonterminate:=true не срабатывает вот что то не могу понять что нужно сделать чтобы нормально уничтожить и освободить поток
0
|
||||||
| 07.01.2022, 16:43 | |
|
Ответы с готовыми решениями:
62
Как перевести Console Application в Windows Application Написать Service Application, что бы этот сервис висел в службах и работал Разница запуска функция Console Application и VCL Forms Application |
|
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
|||||||
| 08.01.2022, 02:31 | |||||||
|
Если Object это экземпляр класса th, то вызов
И что он будет делать тоже не понятно из ваших обрывков кода. Так что у вас там висит в Console Application?
0
|
|||||||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 08.01.2022, 02:40 | ||
|
Terminate всего лишь устанавливает его флаг в true. Внутри Execute по этому флагу обычно делается выход. Снаружи поток директивно убить нельзя. Даже если уничтожить объект, который указывает на поток, поток все равно останется работать.
0
|
||
|
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
|
| 08.01.2022, 02:53 | |
|
Constcat, а вы спросите ТС что он имеет в виду под словами "поток висит".
Точнее как он определяет, что что-то висит?
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
||||||
| 08.01.2022, 08:47 [ТС] | ||||||
|
Как сделать то в результате ?
Добавлено через 3 часа 46 минут Возможно так потоки перестали висеть, но до конца не уверен и вроде по памяти всё нормально стало а то сильно ело
UPD Всё же нет ((((
0
|
||||||
|
|
|||||||||||
| 08.01.2022, 10:55 | |||||||||||
|
да епрст
сколько можно уже MyThread.pas Кликните здесь для просмотра всего текста
Main.pas Кликните здесь для просмотра всего текста
ровно такой пример обсосан до костей уже в статье про потоки 100 раз ссылку кидали. https://www.cyberforum.ru/blog... g4875.html и никаких критических секций, самоприсваивания номера и других безумий
1
|
|||||||||||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
|
| 08.01.2022, 20:07 [ТС] | |
|
И как это по твоему должно работать если freeonterminate:=true в console application не работает ?
Добавлено через 1 час 29 минут Проверил код не работает
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 08.01.2022, 20:51 | ||
|
Ты убедился, что поток завершил процедуру Execute?
0
|
||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
||||||
| 08.01.2022, 21:07 [ТС] | ||||||
|
Смотри вот так же там да имеется ввиду ? :
0
|
||||||
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,489
|
|
| 08.01.2022, 21:39 | |
|
Uefi220, DoTerminate; и так автоматом выполняется при выходе из Execute, его не нужно вызывать вручную.
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
||||||
| 08.01.2022, 22:18 [ТС] | ||||||
|
Я понял это делает не то что нужно это убивает поток на совсем и таким образом потоков всё меньше пока не дойдёт до заданного количества и встанет )
например если 100 потоков программа дойдёт до 99-100 и встанет просто ) По сути не надо тут TNotifyEvent изобретать тут просто в конце Execute можно вызывать TThread.Destroy; Добавлено через 12 минут Потоки конечно самовыпиливаются и не висят в таком случае, но тогда нужно создавать дополнительно новый поток после этого ? Добавлено через 14 минут Тогда наверное так чтоли и потокобезопасно ли это ?
0
|
||||||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 08.01.2022, 23:01 | |
|
Этим th.Create(false); в конце вы породили бесконечный цикл. Один поток будет висеть всегда.
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
|
| 08.01.2022, 23:09 [ТС] | |
|
Я уже это понял, ну а как сделать то ?
0
|
|
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 08.01.2022, 23:31 | |
|
А есть где-то в этой теме нормальное описание задачи, словами? То, что я вижу в execute, иначе как каляки-маляки я назвать не могу
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
|
| 08.01.2022, 23:35 [ТС] | |
|
Ясно всё с тобою ты хоть помог одному человеку на форуме хоть раз ?)
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 08.01.2022, 23:38 | ||
|
Слишком много хамства от тебя. Странно, что хоть кто-то пытается разобраться в твоей проблеме.
0
|
||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 08.01.2022, 23:41 | ||
|
0
|
||
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,489
|
|||
| 08.01.2022, 23:54 | |||
|
0
|
|||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 785
|
|
| 08.01.2022, 23:57 [ТС] | |
|
Я не хамлю людям если они по крайней мере пытаются помочь, а не пишут про космос когда их спрашивают о табуретке
Добавлено через 2 минуты Дело в том что в программе что то явно просаживает оперативную память, а что именно не понимаю предположил что висят потоки из за этого, потому что в с формой VCL такого не наблюдалось только когда перевёл в Console Application
0
|
|
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,489
|
||
| 09.01.2022, 00:07 | ||
|
0
|
||
|
|
|
| 09.01.2022, 00:22 | |
|
Аж интересно стало.
Как и ожидалось, все работает. Нужно только помнить о том, что цикл Run не крутится, и надо делать CheckSynchronize, как советовали выше.
1
|
|
| 09.01.2022, 00:22 | |
|
Помогаю со студенческими работами здесь
40
Создание объекта класса, чтобы он постоянно висел в памяти, и чтобы память выделялась один раз как написать в Console application Как сделать чтобы закрывалось предыдущее окно? Windows Form Application Как синхронизировать потоки в Application Console? Как реализовать сессии в Console Application Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|