如何不与主线程上的密集任务同时阻止UI交互

时间:2016-10-11 16:41:15

标签: ios

我有几个子控制器。其中一个是不可见的。

当我应该在隐形控制器中更新UI时,它会使用100%的CPU几秒钟来阻止可见控制器中的UI交互(手势不起作用)。

不幸的是,我无法在主线程上更新UI。 在我的情况下,有没有机会不阻止UI?

1 个答案:

答案 0 :(得分:0)

最后,我使用NSOperationQueue将代码分解为块。 CPU仍然被100%(Iphone 4s)使用,但UI未被阻止。

NSOperationQueue *queue = [NSOperationQueue mainQueue];
queue.qualityOfService = NSQualityOfServiceUserInteractive;
queue.maxConcurrentOperationCount = 1;

[queue addOperationWithBlock:^{
    ...some UI Updates
}];
[queue addOperationWithBlock:^{
    ...some UI Updates
}];
[queue addOperationWithBlock:^{
    ...some UI Updates
}];