c ++:将来调度函数调用?

时间:2012-04-03 04:11:55

标签: c++ visual-c++ mfc timer

将Visual C ++与MFC一起使用。当我的代码中发生某个事件时,我想设置一个函数,在10秒后调用它来执行某些活动。事件的处理发生在静态库中,该库没有任何与MFC的直接链接(我希望保持这种方式)。

如何安排将来某个时候调用的函数?我猜用计时器?如何解耦Timer(这是一个MFC依赖),所以我的业务代码没有直接依赖于GUI?或者除了计时器之外还有什么其他的东西?

更新

最近开始阅读Command Pattern这对我的情况看起来很有希望。描述是(我的重点):

  

在面向对象的编程中,命令模式是一种设计   一个对象用于表示和封装所有对象的模式   稍后调用方法所需的信息。

2 个答案:

答案 0 :(得分:3)

方法1 编写一个包装函数来调用静态库。 在静态库调用之前,请在所需的持续时间内进行休眠。

方法2 使用Win32计时器http://www.codeproject.com/Articles/1236/Timers-Tutorial#Win32Timers

您可以避免两种方法中的MFC依赖。

答案 1 :(得分:0)

您应该使用辅助线程并告诉它等待10秒,然后再调用该函数。这样,在GUI响应性方面对程序的其余部分影响最小,并确保在10秒后无论如何都会调用您的函数。