各位大哥些,请进来看一看啊,多线程的问题
//---------------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#define WM_MYMSG WM_USER+1
//---------------------------------------------------------------------------
class Record : public TThread
{
private:
protected:
void __fastcall Execute();
public:
__fastcall Record(bool CreateSuspended);
void __fastcall AnswerMSG(TMessage &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MYMSG, TMessage, AnswerMSG)
END_MESSAGE_MAP(TThread);
};
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall Record::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------
__fastcall Record::Record(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void __fastcall Record::Execute()
{
//---- Place thread code here ----
for(int i=100;i<200;i++)
{
if (i==110)
{
PostMessage((void *)this->Handle,WM_MYMSG,0,100);
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall Record::AnswerMSG(TMessage &Message)
{
if(Message.LParam==100)
{
//
//
}
}
各位大哥。。我这个线程里面怎么拦截不到本线程发出的消息啊?
这个函数AnswerMSG得不到执行?