关于Indy 线程安全的一个问题,这样使用安全吗?(100分)

  • 主题发起人 主题发起人 huhaojie
  • 开始时间 开始时间
H

huhaojie

Unregistered / Unconfirmed
GUEST, unregistred user!
在线程中使用indy (属于线程类成员),这应该没问题,

换种方式,比如:
多个线程,共用一个indy对象(如 idudpserver),当然如果修改对象的资源我想应该也是要程序进行同步的。

但如果多线程只是调用其方法,过程(如有10条线程,都有这样的代码:
Mainform.id_udpserver.Send();
),哪需不需要进行控制呢(互斥、临界区等)?
 
安全吗?
 
indy本身就是多线程的!你这样做岂不是多此一举?
 
indy 的多线程是指读写,采用阻塞方式,并进行线程封装。

我这样做,当然是有目的,试想UDPServer 接收到数据包后,
并要做冗长的处理,如果直接封装在它的线程事件里,如何能及时的响应,其它用户的请求?

当然为什么要在处理线程里,调用Mainform.id_udpserver.Send,是为了在有些网络环境下,(如 客户端通过NAT连入服务器),共相同的socket 句柄,以保证数据正确的到达客户端。

不知这位高手,有什么独道的见解???



 
Mainform.id_udpserver.Send();
发出去就不管了,这些咚咚都是Winsock管理的,不用你操心!
 
后退
顶部