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

我有一个程序在程序运行过程中连续testing一个if循环中的条件。 但是我想要这个条件成为真正的或活跃的一段时间(比如说5毫秒),然后停用if条件下10ms。 然后继续这个模式,直到用户closures程序。 我不知道如何处理这个问题,请帮助我!

我有一个build议给你…

创build一个方法,当你想用TRUE值启动进程时调用这个方法。

-(void)yourProcessMethod(BOOL _flag){ if(_flag){ //Execute your process //now check for time is it 5ms or not if(time elapsed < 5ms){ [self yourProcessMethod(TRUE)]; }else{ [self yourProcessMethod(FALSE)]; } }else{ //Execute your process (or do nothing if you want to stop it for 10 ms) //now check for time is it 10ms or not if(time elapsed < 10ms){ [self yourProcessMethod(FALSE)]; }else{ [self yourProcessMethod(TRUE)]; } } } 

编辑: –

您可以使用这段代码来检查执行的时间。

 NSDate *start = [NSDate date]; // do stuff... NSTimeInterval timeInterval = [start timeIntervalSinceNow]; 

timeInterval是开始与现在之间的差异,以秒为单位,精度为亚毫秒。

计算经过的时间,即timeInterval,并检查其值,并比较它是否是<5ms或10 [self yourProcessMethod(TRUE / FALSE)] ;.

我希望这可以帮助你。 🙂如果是的话,你可以接受答案或UpVote 🙂

你可以尝试这样的事情;

 BOOL结果= NO;
 BOOL prevResult = NO;

而(条件1)
 {
    如果(条件2)
        结果=是;
    其他
        结果=否;

    如果(结果)
     {
        如果(!prevResult)
             //存储时间
        否则如果(/ *当前时间 - 存储时间<5ms * /)
             //使线程睡眠10ms
     }

     prevResult =结果;
 }

请注意,期望毫秒精度可能不太现实。