读书人

有关 IdTCPServer/IdTCPClient 收发消

发布时间: 2012-02-13 17:20:26 作者: rapoo

有关 IdTCPServer/IdTCPClient 收发消息的问题 ???
目的:
Server程序为多线程,当Client连接到Server时在Server上维护了一个Client连接信息列表。Server中的线程中的任务完成后需要通过Server通知给各个客户端。

Server程序 : IdTCPServer
Client程序 : IdTCPClient
方法一:某线程任务完成后就遍历Client列表来发消息通知。实际测试中发现经常会阻塞主线程。

Server程序 : IdTCPServer+IdTCPClient
Client程序 : IdTCPClient
方法二:在Server上也放了一个IdTCPClient,线程任务完成后,通过IdTCPClient发消息给IdTCPServer,然后再遍历Client列表通知。感觉这样使用有些怪。

请教大侠们给指点些高效合理的实现方法。


[解决办法]
就是方法一,我做过一个用IDTCP这两个的聊天的东西,好友上下线不就是要遍历所有客户连接线程嘛
[解决办法]
放TIdThreadMgrDefault这个控件试试
[解决办法]
楼主线程中遍历列表为什么要使用Synchronize?

这应该是对Synchronize误用了.
Synchronize是为工作线程切换到主线程执行任务,主要用于GDI之类主线程操作.

你需要的是对列表的多线程安全访问..用临界区锁定什么的吧.

[解决办法]
又见哈欠,呵呵,同意他的建议

读书人网 >.NET

热点推荐