关于线程中加入事件得问题? ( 积分: 100 )

  • 主题发起人 主题发起人 zygtp
  • 开始时间 开始时间
Z

zygtp

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个winsock通讯程序中,采用多线程,我想在线程中定义事件如:
typedef void __fastcall (__closure *TRecvData)(unsigned int hd_socket,char *buf,int len);
其它程序通过pThread->OnRecvData=OnReceive;访问,
但是我再调用if(FOnRecvData)FOnRecvData(cSocket,dataBuf,bytesRecv);时出错,我再调用前用TCriticalSection保护也不行,我应该怎么保护线程安全呢?
 
我在一个winsock通讯程序中,采用多线程,我想在线程中定义事件如:
typedef void __fastcall (__closure *TRecvData)(unsigned int hd_socket,char *buf,int len);
其它程序通过pThread->OnRecvData=OnReceive;访问,
但是我再调用if(FOnRecvData)FOnRecvData(cSocket,dataBuf,bytesRecv);时出错,我再调用前用TCriticalSection保护也不行,我应该怎么保护线程安全呢?
 
if(FOnRecvData)FOnRecvData(cSocket,dataBuf,bytesRecv);//偶不是高手,你这句看上去感觉就有错误
 
if Assigned(FOnRecvData) then
FOnRecvData(cSocket,dataBuf,bytesRecv);//
 
后退
顶部