プログラムの実行中にifループ内の条件を継続的にテストするプログラムがあります。しかし、if条件が一定期間(たとえば5ms)trueまたはアクティブになり、次の10msの間if条件を非アクティブ化する必要があります。次に、ユーザーがプログラムを閉じるまで、このパターンを続けます。
質問する
463 次
2 に答える
2
あなたは本当に別のアプローチを取るべきだと思われますが、これはあなたの質問に対する文字通りの答えです:
while ( YES )
{
NSTimeInterval t = [NSDate timeIntervalSince1970];
long ms = t*1000;
if ( ms % 15 < 5 )
{
// code here is executed for 5 ms in every 15 ms timewindow
}
}
このループは、アプリのパフォーマンスとバッテリー寿命に非常に悪影響を及ぼします。
「5ミリ秒、15ミリ秒ごと」に実行する必要があるコードの種類に応じて、NSTimer
代わりに次を使用できます。
[NSTimer scheduledTimerWithTimeInterval:0.015 target:self
selector:@selector(fire) userInfo:nil repeats:YES];
メソッドで:
-(void)fire
{
// called every 15 ms, does something for 5 ms.
}
于 2012-06-01T13:25:03.407 に答える
0
||
チェックされているかどうかに関係なく、条件とブールフラグ表示をもう1つ追加します。if(shouldNotCheckCondition || condition)
于 2012-06-01T13:13:18.237 に答える