【发布时间】:2015-04-24 11:31:20
【问题描述】:
我是 C 中回调函数的新手。我想创建一个定时回调。
场景:我想要一个定时器函数,它会在定时器到期时触发回调函数。例如,每 5 秒计时器到期并调用该函数。
我应该如何解决这个问题?
【问题讨论】:
-
到目前为止,您自己尝试过什么?它是如何(或没有)工作的?您是否有更具体的问题或想知道(例如函数指针、计时器、线程或其他东西)?
-
实际上我需要一个程序,该程序将从我的 wifi 适配器发送信标帧以进行同步...所以我需要每 5 秒发送一次信标帧...在这之间,我发送一些其他数据! ...所以定时器功能不应该阻塞它,直到它的 5 秒......我厌倦了在发送每个数据包之前检查时间......但这不是一种有效的方式
-
是否必须每五秒一次准确地?或者每五秒 about 可以吗?因为如果大约每五秒一次就可以了,那么你就有一个很好的解决方案(当你发送另一个数据包时,检查距离你上次发送特殊数据包是否至少五秒)。
-
否则您可以使用线程或
SIGALRM实现计时器,但这会增加其他问题和复杂性(例如您需要同步、消息队列或特殊标志)。 -
我只需要 5 秒……我的意思是每 5 秒执行一次,具有高优先级……因此,当计时器到期时,此输入将调用同步函数……希望您能理解!