将Visual C ++与MFC一起使用。当我的代码中发生某个事件时,我想设置一个函数,在10秒后调用它来执行某些活动。事件的处理发生在静态库中,该库没有任何与MFC的直接链接(我希望保持这种方式)。
如何安排将来某个时候调用的函数?我猜用计时器?如何解耦Timer(这是一个MFC依赖),所以我的业务代码没有直接依赖于GUI?或者除了计时器之外还有什么其他的东西?
更新
最近开始阅读Command Pattern这对我的情况看起来很有希望。描述是(我的重点):
在面向对象的编程中,命令模式是一种设计 一个对象用于表示和封装所有对象的模式 稍后调用方法所需的信息。
答案 0 :(得分:3)
方法1
编写一个包装函数来调用静态库。
在静态库调用之前,请在所需的持续时间内进行休眠。
方法2 使用Win32计时器http://www.codeproject.com/Articles/1236/Timers-Tutorial#Win32Timers
您可以避免两种方法中的MFC依赖。
答案 1 :(得分:0)
您应该使用辅助线程并告诉它等待10秒,然后再调用该函数。这样,在GUI响应性方面对程序的其余部分影响最小,并确保在10秒后无论如何都会调用您的函数。