3、>cancel(); Task *t2 = TaskConstruction("Task2", run2);//此处的run2也是一个函数指针,用于构造一个Task. exe->setTask(t2); exe->begin(); exe->cancel(); return (EXIT_SUCCESS);} 运行结果为: task : [Task1] is ready to run[a = 1.200000, b = 2.300000][(a + b) * (a - b) = -3.850000]cancel is i
4、nvoked heretask : [Task2] is ready to runanother type of execute,just print out some informationcancel is invoked here 好了,下面详细看看实现: 定义接口 首先,定义Task和Executor两个实体的接口: Task接口,注意其中的_this字段,这个指针在后边有很重要的作用,用于hold整个Task的实例。然后是一个taskName的字符串,和一个函数指针,这个指针在初始化(构造)Task时传入。这个execute()函数比
7、tTask(Task *task);void begin();void cancel();#endif /*_IEXECUTOR_H*/ 实现接口 #include #include "ITask.h"Task *task = NULL;void execute();/* * The construction of Task object. * name : the name of the task * execute : execute method of the task * */Task *TaskConstruction(c