-2

我正在使用基于计时器的应用程序,我在主运行循环中连续运行 3 个计时器,以便在任何 UI 更新的情况下计时器将连续运行。但过了一段时间(大约 1 小时),我的应用程序挂起,而不是按下按钮等。响应至少需要 10-15 秒。

我想知道 MAC cocoa 应用程序滞后的原因是什么。我正在开发基于计时器的应用程序。所以我需要多个计时器来运行。当没用时,我也无效。但它仍然没有帮助我。

请为 mac 提供任何性能调试指导,以便我可以检查我的代码在哪里创建问题等?

代码:

NSRunLoop *runloop = [NSRunLoop currentRunLoop]; 
updateServerTimeTimer = [NSTimer timerWithTimeInterval:1.0 
                                                target:self
                                              selector:@selector(updateServerTime)
                                              userInfo:nil 
                                               repeats:YES]; 
[runloop addTimer:updateServerTimeTimer forMode:NSRunLoopCommonModes];
4

1 回答 1

0

您的问题是NSRunLoopCommonModes.usescheduledTimerWithTimeInterval:target:selector:userInfo:repeats:方法,它会将 NSTimer 安排在 .use 中NSDefaultRunLoopMode。如果 UI 正在更新,您的应用程序稍后会收到其他事件。看看这个帖子。

于 2012-10-19T07:25:25.630 回答