在JavaScript中有一个非常好用的函数
我想在C++中实现类似的功能(不使用多线程),于是写了一个示例循环:
window.setTimeout( func, 1000 ) ;
,它会在1000毫秒后异步地执行func
。我想在C++中实现类似的功能(不使用多线程),于是写了一个示例循环:
#include <stdio.h>那么如何让这个程序能够正确执行呢?
struct Callback { // 要执行该函数的时间。 double execTime ;
// 在execTime过后要执行的函数。 void* func ; } ;
// 用于记录程序整体时间的全局变量。 double time ;
// 待执行的示例函数 void go() { puts( "GO" ) ; }
int main() { // 开始计时 time = 0 ;
// 创建一个示例回调 Callback c1 ; c1.execTime = 10000 ; c1.func = go ;
while( 1 ) { // 如果已经到达该执行时间,则执行相应的函数 if( time > c1.execTime ) { c1.func ; // !! doesn't work! }
time++; } }
c1.func
并没有调用这个函数,它似乎什么也没做! - bobobobo