Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2014, 22:57   #1
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Вопрос Висит приложение после закрытия

Приветствую!

Какие есть пути для определения проблемы, которая мешает приложению завершить свой процесс после закрытия главной формы?

_вроде_как_ все созданные объекты и переменные уничтожены.

Как можно отладить это?
По факту создается WinControl для принятия сообщений, критические секции, потоки. По сути все.
STRELOK-2007 вне форума Ответить с цитированием
Старый 06.11.2014, 23:31   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Если кода меньше чем на 14732 строки, то встроенным отладчиком можно обойтись. Причин зависания много может быть. Ну если _вроде_как_ все созданные объекты и переменные уничтожены, то наиболее вероятно, что есть неубитые потоки (по новым законам эмбэркадэров TThread иначе убиваться должны) или просто потоки которые ожидают открытия секции, хотя она уже была удалена или что-то в этом роде.
eoln вне форума Ответить с цитированием
Старый 06.11.2014, 23:55   #3
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

Потоки точно завершены, абсолютно в этом уверен. События. Прогресс на этом основывается. Отладчик потоков тоже.

А если критическая секция не закрыта, то как узнать? Хотя если объекты TCriticalSection уничтожены, не должно быть живых.
STRELOK-2007 вне форума Ответить с цитированием
Старый 07.11.2014, 01:52   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от STRELOK-2007 Посмотреть сообщение
Приветствую!

Какие есть пути для определения проблемы, которая мешает приложению завершить свой процесс после закрытия главной формы?

_вроде_как_ все созданные объекты и переменные уничтожены.

Как можно отладить это?
По факту создается WinControl для принятия сообщений, критические секции, потоки. По сути все.
А как/ в чём проявляется факт "незавершения своего процесса"?
northener вне форума Ответить с цитированием
Старый 07.11.2014, 18:25   #5
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

В общем нашел причину. Поставив EurekaLog. Забыл про него. По ходу дела, суть оказалась в том, что созданный диспетчер потоков (TWinControl) я уничтожал вручную. Изза этого появлялись ошибки в обработки сообщений, и собственно это послужило причиной. Если его не уничтожать, уничтожается сам при уничтожении родителя - все ок.

Такие дела... Переборщил как говорится)
STRELOK-2007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение действий в программе после закрытия fins Общие вопросы Delphi 9 01.07.2015 18:59
Зацикливание открытия, после закрытия GWolf Microsoft Office Excel 6 09.11.2012 11:45
Хранение изображения после закрытия в Image artemavd Общие вопросы Delphi 14 18.01.2010 10:29
записанное в Edit сохранить после закрытия IVANSour Общие вопросы Delphi 6 21.01.2009 03:33