我已经在Linux上工作了一段时间,写过一些C程序,现在我需要为Windows构建一个应用程序,但是很难找到替代signal.h中闹钟功能的方法...
问题在于,在Linux中,当你将闹钟标志设置为SIGALRM时(如果没有错误),操作系统会在闹钟响起时执行某些函数。 例如:
signal(SIGALRM, myfunc);
alarm (2);
这个例子中,操作系统将会每隔2秒调用一次myfunc函数(在Windows中可能是毫秒级别的,但现在不要关注这个细节)。
我已经搜索了一段时间如何在Windows上做同样的事情(目前仅使用windows.h),但我找不到替代方法(在msdn上搜索了成千上万次),而且在Windows上没有signal.h中的SIGALRM标志.....
在C语言中,我应该使用什么来实现与带有SIGALRM标志的alarm相同的行为?(换句话说,使用定时器或类似的函数来执行另一个函数)。
CreateTimerQueueTimer
,因为MSDN上已经警告过它的过时,而且它运行得很好。虽然它只能以毫秒为单位计时,可能没有POSIX版本那么精确,但对我来说已经足够了。+1 - Thomas