【发布时间】:2013-02-23 12:04:38
【问题描述】:
我确定之前有人问过这个问题,所以我当然使用搜索功能来检查是否有答案可以解决我的问题。
但是,我能找到的只是很多关于高精度测量时间的答案。
我需要的是一个高分辨率(至少毫秒)的计时器,它允许我在经过定义的时间段时触发回调。 我想在 Cocoa Mac OS X 应用程序中使用它,所以 C/C++ 或 Obj-C 是可能的。 如果需要额外的库,那也可以。
我找到了这个http://www.songho.ca/misc/timer/timer.html,但它使用了繁忙的等待策略,并且我认为会花费太多的性能。
非常感谢您的帮助!
【问题讨论】:
-
我不了解 Cocoa,但你应该阅读更多关于它的事件循环机制的信息;它肯定会给你一些计时器或轮询......你基本上应该了解如何注册超时事件回调。
-
这个问题似乎有你的答案:stackoverflow.com/questions/464618/…(第二个答案:在 OSX 上,mach_absolute_time 和 mach_timebase_info 是 Win32 QueryPerformance* 函数的最佳等价物。)
-
std::this_thread::sleep_for浮现在脑海中(因为我昨天碰巧又偶然发现了它),例如,与std::milliseonds一起使用(不确定那里是否应该有“chronos”或其他东西,检查出来)。哦,还有 C++11 中的所有“未来”支持。可惜我没用过。 -
@guitarflow 你也有精度/抖动要求吗?
-
嗯,在 posix 系统上的 C 中执行此操作的传统方法是使用
timer_create和信号。
标签: c++ objective-c c timer callback