我有一个程序在程序运行期间连续测试 if 循环内的条件。但我希望这个if 条件在一段时间内变为 true 或激活(比如 5 毫秒),然后在接下来的 10 毫秒内停用if 条件。然后继续这个模式直到用户关闭程序。我不知道如何解决这个问题,请帮助我!
问问题
335 次
2 回答
0
你可以尝试这样的事情;
布尔结果 = 否; BOOL prevResult = NO; 而(条件1) { 如果(条件2) 结果=是; 别的 结果=否; 如果(结果) { if(!prevResult) // 存储时间 else if(/* 当前时间 - 存储时间 < 5ms */) // 让线程休眠 10ms } 上一个结果 = 结果; }
请注意,期望毫秒精度可能不太现实。
于 2012-06-01T06:00:46.390 回答
-1
我有一个建议给你...
当您想以 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
是 start 和 now 之间的差异,以秒为单位,精度为亚毫秒。
计算经过的时间,即 timeInterval 并检查其值并比较它是 < 5ms 还是 10 [self yourProcessMethod(TRUE/FALSE)];。
我希望这可以帮助你。:)如果是,您可以接受答案或UpVote :)
于 2012-06-01T06:27:21.927 回答