可能重复:
Execute an “if” condition “x” milliseconds and stop for “y”millisecond and repeat the condition ?
我有一个程序在程序运行期间连续测试if循环内的条件。但是我希望这个条件在某段时间内变为真或有效(比如说5ms),然后在接下来的10ms内停用if条件。然后继续这种模式,直到用户关闭程序!
答案 0 :(得分: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 ms,每15 ms”,您可以使用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.
}
答案 1 :(得分:0)
使用||
再添加一个条件,并检查是否有bool标志指示。 if(shouldNotCheckCondition || condition)