Size: a a a

2020 December 02

СП

Сергей Пятыгин... in Delphi & Lazarus
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Печаль... 2.0.10.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
у тебя колл-стэк в среде хотя бы виден?
источник

DB

Dmitry Belkevich in Delphi & Lazarus
там у компоненты в OnException:
WriteLn(f, E.ClassName, ' ', E.Message);
DumpExceptionBackTrace(f);
источник

DB

Dmitry Belkevich in Delphi & Lazarus
файл f предварительно открываю, само собой
источник

DB

Dmitry Belkevich in Delphi & Lazarus
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
источник

SB

Sergey Bodrov in Delphi & Lazarus
Dmitry Belkevich
да. самый надежный
Я не считаю неявный Synchronize надежным способом. А еще в этом обработчике можно грохнуть поток (по неопытности), тогда при выходе из обработчика управление вернется в открытый космос.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
как раз таки неявный синхронайз очень полезен: можно спокойно сделать всё, что нужно из основного потока: забрать данные из потока и т п. я обнуляю так ссылки на потоки
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
А это на создании потока, который по идее вызывает утечку. 326 строка.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Alexey Shumkin
yep
инфа 100% от самого потока ))
С одной стороны, это правильно. С другой стороны, технически неудачно реализовано. Лучше такое делать через PostMessage.
источник

VA

Viktor Akselrod in Delphi & Lazarus
Sergey Bodrov
Я не считаю неявный Synchronize надежным способом. А еще в этом обработчике можно грохнуть поток (по неопытности), тогда при выходе из обработчика управление вернется в открытый космос.
об этом ясно в документации написано. это не магия
источник

VA

Viktor Akselrod in Delphi & Lazarus
Sergey Bodrov
С одной стороны, это правильно. С другой стороны, технически неудачно реализовано. Лучше такое делать через PostMessage.
а что на счет кроссплатформы?
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Sergey Bodrov
С одной стороны, это правильно. С другой стороны, технически неудачно реализовано. Лучше такое делать через PostMessage.
зачем что-то выдумывать, если есть хорошо документированный 'стандартный' способ, предназначенный именно для этого
источник

DB

Dmitry Belkevich in Delphi & Lazarus
к слову говоря: как потоку вообще узнать, куда постмессейдж слать? а если формы вообще не существует ни одной? (сервис, например)
источник

SB

Sergey Bodrov in Delphi & Lazarus
Dmitry Belkevich
как раз таки неявный синхронайз очень полезен: можно спокойно сделать всё, что нужно из основного потока: забрать данные из потока и т п. я обнуляю так ссылки на потоки
Synchronize это по сути костыль, от которого вреда может быть намного больше, чем пользы. Так же как Application.ProcessMessages(). Это прямое нарушение правила изоляции потоков.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Viktor Akselrod
а что на счет кроссплатформы?
В VCL/LCL messages работают на всех платформах.
источник

VA

Viktor Akselrod in Delphi & Lazarus
Sergey Bodrov
Synchronize это по сути костыль, от которого вреда может быть намного больше, чем пользы. Так же как Application.ProcessMessages(). Это прямое нарушение правила изоляции потоков.
абсолютно нет. не надо придумывать. это легальный способ синхронизации вторичного потока с главным
источник