firemonkey indy udp同步线程

问题描述 投票:0回答:1

美好的一天。我创建了一个类实例Thread。在这个线程中,我创建了udpserver。 UDPREAD与主线程同步。

问题:如何不与主线程同步,而是与作为UDP父线程的线程同步

谢谢

multithreading udp firemonkey indy synchronize
1个回答
1
投票

TIdUDPServer是一个多线程组件。在内部,它为您在TIdUDPServer.Bindings集合中设置的每个项目运行单独的阅读线程。当给定的Binding接收传入数据时,相应的线程读取数据然后触发OnUDPRead事件。

默认情况下,通过调用OnUDPRead在主UI线程的上下文中调用TThread.Synchronize()事件处理程序。如果要避免这种情况,则需要将TIdUDPServer.ThreadedEvent属性设置为true。然后将直接在Binding的读取线程的上下文中调用事件处理程序,您可以根据需要将事件处理程序的代码与服务器的父线程同步。

© www.soinside.com 2019 - 2024. All rights reserved.