链式任务反应
当io_service对象身上没有任务的时候,当前正在运行的run()过程就结束了。这时再往它身上添加任务,程序收不到任务完成事件。
如果本次任务完成后,run()函数退出前再添加一项或更多任务,这就叫链式任务。
在asio的异步世界里,链式任务是最常用的任务产生模式。
新建控制台项目asio_countdown
思路:和Peng结构一样,由于存在状态传递以及会重复调用,所以考虑使用“函数对象”作为定时的回调动作(否则就可能要用到全局数据或者使用binder以绑定状态数据了)。
最关键的代码是括号操作符重载函数24~39行