我正在使用NSTimer
执行某些操作,并在 appDelegate 的主线程中运行3 NSTimers
。它会在速度方面影响应用程序的性能吗?
答案 0 :(得分:1)
定时器的开销非常低。我认为你根本不会看到任何影响。如果频率在几秒钟的数量级,你可以做我为一个关心几个不同时间间隔的应用做的事情:一个NSTimer每秒发射一次,然后模拟检查和通知谁关心每个频率。
- (void)secondsTimerFired:(NSTimer *)timer {
NSDate *now = [NSDate date];
NSInteger nowInterval = (NSInteger)[now timeIntervalSinceReferenceDate];
[[NSNotificationCenter defaultCenter] postNotificationName:@"SecondsTimerFired" object:self];
if (nowInterval % 5 == 0) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"Second_5_TimerFired" object:self];
}
if (nowInterval % 12 == 0) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"Second_12_TimerFired" object:self];
}
}
另一个好处是我有一个地方和一个计时器来使应用程序活动/非活动事件无效并重新启动。