美好的一天。 我创建一个类实例Thread。 在此线程中,我创建udpserver。 UDPREAD与主线程同步。
问题:如何不与主线程同步,而是与作为UDP父级的线程同步
谢谢
答案 0 :(得分:1)
TIdUDPServer
是一个多线程组件。在内部,它为您在TIdUDPServer.Bindings
集合中设置的每个项目运行一个单独的读取线程。当给定的Binding
收到传入数据时,相应的线程将读取数据,然后触发OnUDPRead
事件。
默认情况下,通过调用OnUDPRead
在主UI线程的上下文中调用TThread.Synchronize()
事件处理程序。如果要避免这种情况,则需要将TIdUDPServer.ThreadedEvent
属性设置为true。然后,将直接在Binding
的读取线程的上下文中调用事件处理程序,并且您可以根据需要将事件处理程序的代码与服务器的父线程同步。