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