S
sharkhu
Unregistered / Unconfirmed
GUEST, unregistred user!
在多线程中,我用了一个 OCX 控件,现在在线程中响应控件的事件有点问题。
代码如下
代码:
.h 中
class TCommThread : public TThread
{
private:
TComm *comm
protected:
void __fastcall Execute()
void __fastcall OnRecvMsg(TObject *Sender)
public:
__fastcall TCommThread(bool CreateSuspended)
}
.cpp中
__fastcall TCommThread::TCommThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
CoInitialize(NULL)
comm=new TComm(Application)
comm->OpenComm()
comm->OnRecvMsg = OnRecvMsg
}
//---------------------------------------------------------------------------
void __fastcall TCommThread::Execute()
{
while(!Terminated){
//ShowMessage("systen is active!"
Sleep(2000)
}
}
//---------------------------------------------------------------------------
void __fastcall TCommThread::OnRecvMsg(TObject *Sender)
{
ShowMessage("have new message!"
//写日志还是没有
}
请高手指点
comm->OnRecvMsg = OnRecvMsg
为什么始终不能响应这个事件呢?
确定1) 肯定有数据进来了 (2) 线程也是活动的 (3) comm 肯定创建成功了,因为可以 sendMsg("测试"
的
代码如下
代码:
.h 中
class TCommThread : public TThread
{
private:
TComm *comm
protected:
void __fastcall Execute()
void __fastcall OnRecvMsg(TObject *Sender)
public:
__fastcall TCommThread(bool CreateSuspended)
}
.cpp中
__fastcall TCommThread::TCommThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
CoInitialize(NULL)
comm=new TComm(Application)
comm->OpenComm()
comm->OnRecvMsg = OnRecvMsg
}
//---------------------------------------------------------------------------
void __fastcall TCommThread::Execute()
{
while(!Terminated){
//ShowMessage("systen is active!"
Sleep(2000)
}
}
//---------------------------------------------------------------------------
void __fastcall TCommThread::OnRecvMsg(TObject *Sender)
{
ShowMessage("have new message!"
//写日志还是没有
}
请高手指点
comm->OnRecvMsg = OnRecvMsg
为什么始终不能响应这个事件呢?
确定1) 肯定有数据进来了 (2) 线程也是活动的 (3) comm 肯定创建成功了,因为可以 sendMsg("测试"
的