执行“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 =结果; }
请注意,期望毫秒精度可能不太现实。