对 UNIX 和 Windows 上的 C 语言中类似于 JavaScript setTimeout 的东西感兴趣。
基本上,我想要:
start_timer(&function_pointer, int time_in_secs)
或尽可能接近。
此外,类似于 setInterval 的东西会很好(它每 n 秒调用一次回调),但这可以使用 setTimeout 实现:)
在 Win32 中使用TimerProc作为回调的SetTimer 。
/* calls TimerProc once every 60000 milliseconds */
SetTimer(NULL, 1, 60000, TimerProc);
您可能想尝试使用 POSIX 间隔计时器 timer_create 和 timer_settime,因为它允许您直接指定回调函数而不使用信号。要让计时器只过期一次(而不是继续重复):
timer_settime:定时器的重载值应设置为 value 的 it_interval 成员指定的值。当定时器配备非零 it_interval 时,将指定一个周期性(或重复性)定时器。
以下是有关使用这些计时器的大量文档,其中包含来自 kernel.org 上的 Linux 程序员手册的一个很好的示例:
对于 UNIX man setitimer
,.
试试油嘴滑舌。如果您需要可移植的代码,那么您很可能无法编写比它们更可移植的东西;)
http://library.gnome.org/devel/glib/2.20/glib-The-Main-Event-Loop.html#g-timeout-add