多线程与VCL问题?(100分)

T

tian

Unregistered / Unconfirmed
GUEST, unregistred user!
用WinSocket进行一对多的传输问题
我想做一个多线程的服务器
对应每个连接用一个线程
这个线程维护一个Socket,实现传输
但我发现VCL不支持多线程
也就是用不了TServerSocket
请问各位大侠怎么办?
 
TServerSocket中的代码必须是Thread Safe的,如果要操作VCL有两种方法:
1 Delphi推荐的执行Synchronize(YourMethod)
2 发消息给窗口,让主线程执行。
1是同步调用,2是异步的。其实1 也是转到主线程执行,不过执行过程中ServerSocket线程是阻塞的。如果代码有问题,这种方式比较容易死锁。
因此,我一般用地二种方法。
 
接受答案了.
 
顶部