powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
7 сообщений из 7, страница 1 из 1
TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
    #40017951
misha mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а есть какой-то простой способ избавиться от гонки сабжей? Еще одна волшебная глобальная переменная какая-то?
А то с большой вероятностью отчет об не высвобожденной памяти выводится до того, как отработает сборщик завершенных потоков.
Проблем не доставляет, но при отладке бесит ложными сообщениями об утечках.
...
Рейтинг: 0 / 0
TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
    #40017953
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misha mike,

Нет никакой гонки. Просто у тебя потоки не освобождаются до закрытия приложения.

Поставь waitfor у потоков и не мучай себя.
...
Рейтинг: 0 / 0
TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
    #40018085
misha mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat, отпускаю сразу.
Может до них не успевает доходить нужное количество процессорного времени, не знаю, а делать waitfor нечему, потоки анонимные.
...
Рейтинг: 0 / 0
TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
    #40018089
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misha mike
делать waitfor нечему, потоки анонимные.
Самый тупой код, который можно придумать
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  AtomicIncrement(GThreadCounter);
  TThread.Queue(
    nil,
    procedure
    begin
      ......
      AtomicDecrement(GThreadCounter);
    end;
  );

procedure TForm1.FormDestroy(Sender: TObject);
begin
  while (GThreadCounter > 0) do
    Sleep(100);
end;
...
Рейтинг: 0 / 0
TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
    #40018140
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misha mike
потоки анонимные

Я стреляю себе в ногу и мне почему-то больно.
...
Рейтинг: 0 / 0
TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
    #40018163
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misha mike
rgreat, отпускаю сразу.
Может до них не успевает доходить нужное количество процессорного времени, не знаю, а делать waitfor нечему, потоки анонимные.


При создании анонимного потока запоминайте ссылку на объект потока и не используйте FreeOnTerminate. Удаляйте объекты потоков при выходе из программы. Тогда не будет вышеуказанных проблем. Можно периодически (по таймеру) чистить объекты отработавших анонимных потоков.
...
Рейтинг: 0 / 0
TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
    #40018800
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
misha mike
rgreat, отпускаю сразу.
Может до них не успевает доходить нужное количество процессорного времени, не знаю, а делать waitfor нечему, потоки анонимные.


При создании анонимного потока запоминайте ссылку на объект потока и не используйте FreeOnTerminate. Удаляйте объекты потоков при выходе из программы. Тогда не будет вышеуказанных проблем. Можно периодически (по таймеру) чистить объекты отработавших анонимных потоков.


+1
возьму идею на заметку
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TThread.FreeOnTerminate vs ReportMemoryLeaksOnShutdown
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]