如果主线程繁忙,NSTimer 何时触发?
When Does NSTimer Fire If Main Thread Is Busy?
如果主线程繁忙,NSTimer 何时触发?这是有问题的代码行:
[NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(onTimer:)
userInfo:nil
repeats:YES];
我对 NSTimer(以及 运行 循环和线程)有点陌生,所以感谢您的帮助。我的应用程序在主线程上安排的 NSTimer 上进行刷新。如果刷新计时器在指定的确切时间间隔触发并且不等待主线程释放,则可能会出现问题。
例如,如果用户在链接到数据的屏幕上执行某些操作,然后刷新立即触发并更改该数据,导致应用程序崩溃。这是否可能发生,或者在主线程上解决用户操作之前不会触发刷新?
NSTimer
在当前 运行 循环(即本例中的主 运行 循环)上安排定时器,因此如果主线程忙,定时器将不会触发直到你回到主 运行 循环。
有关详细信息,请参阅 Timer Programming Topics and the NSTimer Class Reference。
如果主线程繁忙,NSTimer 何时触发?这是有问题的代码行:
[NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(onTimer:)
userInfo:nil
repeats:YES];
我对 NSTimer(以及 运行 循环和线程)有点陌生,所以感谢您的帮助。我的应用程序在主线程上安排的 NSTimer 上进行刷新。如果刷新计时器在指定的确切时间间隔触发并且不等待主线程释放,则可能会出现问题。
例如,如果用户在链接到数据的屏幕上执行某些操作,然后刷新立即触发并更改该数据,导致应用程序崩溃。这是否可能发生,或者在主线程上解决用户操作之前不会触发刷新?
NSTimer
在当前 运行 循环(即本例中的主 运行 循环)上安排定时器,因此如果主线程忙,定时器将不会触发直到你回到主 运行 循环。
有关详细信息,请参阅 Timer Programming Topics and the NSTimer Class Reference。