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

时间:2015-07-07 17:17:27

标签: ios objective-c multithreading

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

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

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

2 个答案:

答案 0 :(得分:0)

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

一旦线程开始一些工作 - 即使它的优先级低 - 它将完成它。它不会在任务中间暂停,即使对于更高优先级的工作也是如此。优先级系统仅控制接下来选择的任务 - 它不会根据优先级在半完成任务之间切换。

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

答案 1 :(得分:-1)

中创建低优先级线程
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
在视图控制器中

。你在那里进行验证,如果没问题则返回YES;如果不是返回NO;并且prepareForSegue不是电话。