#ifndef _TASK_INFO_H_
#define _TASK_INFO_H_
/**
用法
class ClassA{ BOOL Test(BOOL ddx);}
typedef BOOL(ClassA::*PCLSAfn)(BOOL);
PCLSAfn pfnTest = &ClassA::Test;
ClassA* pClassA = new ClassA;
sTaskInfo<ClassA, PCLSAfn, BOOL> task(pClassA, &ClassA::Test, FALSE);
task.run(); // 相当于调用(pClassA->*pfnTest)(FALSE);
*/
// T 对象类型
// Method 成员函数指针类型
// Param 成员函数参数类型
template<typename T, typename Method, typename Param>
struct sTaskInfo
{
T* _obj;
Method _mehtod;
Param _param;
sTaskInfo(T* obj, Method method, Param param) : _obj(obj), _mehtod(method), _param(param){}
void run()
{
(_obj->*_mehtod)(_param);
}
};
#endif
用于任务异步线程调用