0

可能重复:
执行“if”条件“x”毫秒并停止“y”毫秒并重复条件?

我有一个程序在程序运行期间连续测试 if 循环内的条件。但我希望这个 if 条件在一段时间内变为 true 或激活(比如 5 毫秒),然后在接下来的 10 毫秒内停用 if 条件。然后继续这个模式直到用户关闭程序!

4

2 回答 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
    }
}

此循环将对应用程序性能和电池寿命非常不利。

根据“每 15 毫秒,每 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

||如果检查与否,请再添加一个带有布尔标志指示的条件。if(shouldNotCheckCondition || condition)

于 2012-06-01T13:13:18.237 回答