在视图控制器segue之前的低优先级线程



我有两个视图控制器:ViewControllerA &ViewControllerB

如果我在ViewControllerA上创建一个低优先级线程,然后立即触发到ViewControllerB的segue,该线程必须在segue开始之前完成吗?

这是我在我的应用程序中看到的行为类型,我只是想知道这是否是可能的原因。

低优先级线程不必须在segue之前完成,但它可能立即开始工作。即使你在设置线程后立即执行segue,在segue发生之前,计算机也可能有很多时间开始处理线程。

一旦线程开始一些工作-即使它是低优先级-它将完成它。它不会在任务中间暂停,即使是更高优先级的工作。优先级系统只控制下一个选择哪个任务,它不会根据优先级在未完成的任务之间切换。

除此之外,iOS设备都至少有2个内核。即使segue在低优先级的工作开始之前启动,低优先级的工作也可能几乎同时在另一个核心上启动。

中创建低优先级线程
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender

在你的视图控制器中。你在那里做你的验证,如果它是OK的,那么返回YES;如果不是,则返回NO;并且prepareForSegue不是调用。

最新更新