Cocoa でゲーム ループを作成することについて、インターネット上でかなり話題になっています。私が見たゲーム ループのほとんどは、NSTimer を使用して 60 秒ごとにイベントをトリガーします。以下の Apple の開発者ドキュメントのソース コードのように、Grand Central Dispatch を使用する例がないように見えるのはなぜですか。私が知らない問題はありますか?
dispatch_source_t CreateDispatchTimer(uint64_t interval,
uint64_t leeway,
dispatch_queue_t queue,
dispatch_block_t block)
{
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,
0, 0, queue);
if (timer)
{
dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), interval, leeway);
dispatch_source_set_event_handler(timer, block);
dispatch_resume(timer);
}
return timer;
}