#include <windows.h>
typedef void (*ThreadFuc)(void* param);
#define Def(var,A,fuc) /
class __##fuc_##A:public A /
{ /
public: /
fuc/
}; /
__##fuc_##A var;
#define New(var,A,fuc) /
class __##fuc_##A:public A /
{ /
public: /
fuc /
}* var; /
var=new __##fuc_##A();
class AIThread
{
public:
AIThread(ThreadFuc fuc=NULL);
~AIThread();
bool start();
bool start(void* value);
bool stop();
virtual void run(){}
bool wait();
void setAction(ThreadFuc fuc)
{
m_fuc = fuc;
}
protected:
HANDLE m_threadHandle;
DWORD m_threadID;
ThreadFuc m_fuc;
void freeHandle();
void* m_exValue;
static DWORD WINAPI threadFuc(void