firemonkey indy udp Синхронизировать поток - PullRequest
0 голосов
/ 20 февраля 2019

Добрый день.Я создаю экземпляр класса Thread.В этой теме я создаю udpserver.UDPREAD синхронизируется с основным потоком.

Вопрос: Как выполнить синхронизацию не с основным потоком, а с потоком, который является родительским для UDP

спасибо

1 Ответ

0 голосов
/ 20 февраля 2019

TIdUDPServer - многопоточный компонент.Внутренне он запускает отдельный поток чтения для каждого элемента, который вы настроили в коллекции TIdUDPServer.Bindings.Когда данный Binding получает входящие данные, соответствующий поток читает данные и затем запускает событие OnUDPRead.

По умолчанию обработчик события OnUDPRead вызывается в контексте основного потока пользовательского интерфейса.через звонок на TThread.Synchronize().Если вы хотите избежать этого, вам нужно установить для свойства TIdUDPServer.ThreadedEvent значение true.Затем обработчик событий будет вызываться непосредственно в контексте потока чтения Binding, и вы можете синхронизировать код вашего обработчика событий с родительским потоком вашего сервера, как вам угодно.

...