在c中实现定时器回调

Implementing timer callback in c

我是 C 语言回调函数的新手。我想创建一个定时回调。

场景:我想要一个定时器函数,当定时器到期时会触发回调函数。例如,定时器每 5 秒到期并调用该函数。

我该如何解决这个问题?

你应该如何解决这个问题?

与所有问题一样:

  • 明确你想做什么
  • 问问自己,如果需要(如果可以的话),你会怎么做
  • 尝试将上一步形式化为尽可能接近单个语句的句子,一次一个步骤。
  • 找出阻碍你的事情/你不知道该怎么做的事情。对此做一些研究。

你想做的正是

你想要"create a timed callback"。我认为这意味着:

  • 你有一个函数foo做一些工作
  • 你有你的程序运行
  • 您希望能够在程序的任何位置说 "From right now, in X miliseconds, call foo"

你自己会怎么做?

我想你会,例如,用 X 毫秒启动一个秒表,然后继续做你正在做的事情。当秒表归零时,您将停止正在做的事情并做需要做的事情。最后,继续你正在做的事情。

什么阻碍了你?

从你的问题来看,我认为有两点阻碍了你:

  • 您需要了解如何在 C 中执行函数回调。请参阅 "function pointers"
  • 您需要了解如何设置计时器并在计时器归零时执行操作。

一些 google 搜索将帮助您解决这两个问题。