void alarm_handler(int signum){
printf("Buzz Buzz Buzz\n");
//set a new alarm for 1 second
alarm(1);
}
main()
{
//set up alarm handler
signal(SIGALRM, alarm_handler);
//schedule the first alarm
alarm(1);
//pause in a loop
while(1)
{
pause();
}
}
我有这个代码打印出“buzz buzz buzz” 我的问题是......无论如何都要跟踪闹钟的秒数。让我设置闹钟报警(5)。
我想做的是跟踪那5 ... 因为它将每5秒打印一次..
在第5秒,警报将关闭,另一个函数可以被调用,将全局变量更改为5,然后再返回0 ...
上午我想到了这个错误......我实施这个想法是错误的吗?我看了计时器,但我不太确定如何设置计时器并跟踪计时器......我的最终任务是每隔5秒打印一次.....但最重要的是保持跟踪警报何时关闭...我将使用全局变量将其设置为5秒,然后将其设置为零..
任何想法......评论......代码...向这个方向推进是非常感激的。 谢谢!
答案 0 :(得分:1)
将闹钟设置为1秒并连续5次执行此操作?
public static readonly DependencyProperty MessagePlayerProperty = DependencyProperty.Register(
"MessagePlayer", typeof (Player), typeof (VideoMessage), new PropertyMetadata(default(Player), PropertyChangedCallback));
private static void PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var control = d as VideoMessage;
(e.NewValue as Player).Sub(control);
}
答案 1 :(得分:0)
在'C'中测量时间的最简单方法可能是使用'C' time functions
您可以使用time()来获取开始时间,然后再次调用time()获取当前时间并使用difftime(now-current)来获取差异。
使用全局变量跟踪计数的概念似乎很合理。