如何跟踪计时器或警报或在C中设置可跟踪计时器

时间:2015-12-05 21:28:04

标签: c timer pthreads signals mutex

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秒,然后将其设置为零..

任何想法......评论......代码...向这个方向推进是非常感激的。 谢谢!

2 个答案:

答案 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)来获取差异。

使用全局变量跟踪计数的概念似乎很合理。