Size: a a a

2020 December 23

M

Mike in Delphi & Lazarus
Sergey Bodrov
Есть.
Спасибо
источник

ED

Ed Doc in Delphi & Lazarus
Sergey Bodrov
Есть.
тогда уж разжуй :)
источник

ED

Ed Doc in Delphi & Lazarus
Mike
Скажите пожалуйста, есть ли какие-то негативные последствия при использовании указателей в потоках?
если передавать указатели в/из основной_поток/дополнительный_поток, то они должны быть валидными, на момент работы с ними
источник

AS

Alexey Shumkin in Delphi & Lazarus
Ed Doc
тогда уж разжуй :)
зачем? )) этого не спрашивали ))))
источник

ED

Ed Doc in Delphi & Lazarus
Alexey Shumkin
зачем? )) этого не спрашивали ))))
логично :)
источник

FT

Fistashka Tryam in Delphi & Lazarus
Alexey Shumkin
зачем? )) этого не спрашивали ))))
Смешно
источник

DK

Denis K in Delphi & Lazarus
Ed Doc
если передавать указатели в/из основной_поток/дополнительный_поток, то они должны быть валидными, на момент работы с ними
по моему это актуально не только с потоками🤷‍♂
источник

DB

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

DK

Denis K in Delphi & Lazarus
Dmitry Belkevich
с многопоточкой увеличивается шанс преждевременного разрушения данных по указателю. +проблему синхронизации доступа к записи данных по ссылке нужно как-то решать. так то должно работать. посматривать, в общем, за данными нужно
ну это, как говорится, "совсем другая история"))) имхо
источник

Y

YuS in Delphi & Lazarus
Всем привет. Есть некая многопоточная либа, которая в потоках  использует Synchronize(@SomeMethod) для вызова событий в основном потоке (OnComplete, OnError etc.). Пытаюсь запустить приложение использующее эту либу как сервис в винде. Но так как в сервисе нет очереди событий, то соответственно synchronize не отрабатывают. Какие есть пути решения? Lazarus.
источник

SB

Sergey Bodrov in Delphi & Lazarus
YuS
Всем привет. Есть некая многопоточная либа, которая в потоках  использует Synchronize(@SomeMethod) для вызова событий в основном потоке (OnComplete, OnError etc.). Пытаюсь запустить приложение использующее эту либу как сервис в винде. Но так как в сервисе нет очереди событий, то соответственно synchronize не отрабатывают. Какие есть пути решения? Lazarus.
Отказаться от Synchronize, причем не только в сервисах.
источник

Y

YuS in Delphi & Lazarus
Sergey Bodrov
Отказаться от Synchronize, причем не только в сервисах.
Эххх... в либу не хотелось бы лезть :)
источник

Y

YuS in Delphi & Lazarus
А если лезть, то в ней просто убираем Synchonize а в основном потоке оборачиваем в критическую секцию?
источник

SB

Sergey Bodrov in Delphi & Lazarus
Рекомендую использовать потокобезопасные очереди. Это могут быть и пайпы, и сокеты, и обычный TStringList с критической секцией.
источник

SB

Sergey Bodrov in Delphi & Lazarus
А вообще лучше почитать, что рекомендуют для сервисов. Не помню уже.
источник

SB

Sergey Bodrov in Delphi & Lazarus
В Лазаре вроде есть какие-то стандартные компоненты IPC.
источник

Y

YuS in Delphi & Lazarus
Sergey Bodrov
А вообще лучше почитать, что рекомендуют для сервисов. Не помню уже.
Спасибо. А почитать где, не ткнете пальцем?
источник

Y

YuS in Delphi & Lazarus
Sergey Bodrov
В Лазаре вроде есть какие-то стандартные компоненты IPC.
Да есть. Погляжу в них. Спасибо.
источник

SB

Sergey Bodrov in Delphi & Lazarus
источник

SB

Sergey Bodrov in Delphi & Lazarus
Или вот - я думал, это одно и то же, но нет - https://wiki.lazarus.freepascal.org/SimpleIPC
источник