私はObjective-cに少し慣れていません。だから、私の質問やコードが奇妙に見えるなら、それは理由を説明するでしょう。0.033秒ごとに起動されるNSTimerがあります。
timer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(timerCallback) userInfo:nil repeats:YES];
セレクター関数は次のようになります。
BOOL running = false;
- (void) timerCallback
{
if (running) {
return;
}
running = true;
//Do some stuff
running = false;
}
つまり、同期を維持するものに関係なく、関数timerCallbackをこれらの間隔で起動する必要があります。(詳細はスキップ)
しかし...結局のところ、timerCallback関数により、NSTimerが停止し、完了するのを待ってから再開しますか?
間隔を維持するにはどのようなオプションが必要ですか?timerCallback関数を別のスレッドで実行できますか?NSTimerよりも優れたオプションはありますか?おそらく、そもそも別のスレッドですか?