gpt4 book ai didi

iphone - 在 iOS 4 (iPhone) 上使用 NSInitationOperation (NSOperation) 和 NSOperationQueue 会导致速度显着下降

转载 作者:行者123 更新时间:2023-12-03 19:02:20 25 4
gpt4 key购买 nike

我有一个很长的操作 O,它是通过 NSInitationOperation 调用的,它本身是通过将其添加到 NSOperationQueue 中来调度的,以便它异步运行。在我的应用程序中,在两种不同的情况下调用了冗长的操作 O。

在情况 A 中,操作 O 是由于在某个 View 中点击某个小部件而被调用的。一旦点击小部件,操作 O 就会运行一段时间(感谢 UIActivityIndi​​cator,我可以看到这一点),但它不会减慢或阻止 UI,因此我可以点击其他小部件并执行其他 UI 操作当操作 O 正在运行时。

在情况 B 中,操作 O 作为接收本地通知的结果而在应用程序委托(delegate)的 didReceiveLocalNotification 方法中被调用。在这种情况下,在调用操作 O 之后立即执行的 UI 操作,虽然仍在 didReceiveLocalNotification 方法中,但速度显着减慢,基本上慢得像爬行一样,几乎就像操作 O 接管了 CPU 一样。

为什么会这样,以及在情况 B 中调用操作 O 的正确方法是什么,以便它确实以较低优先级在后台并发运行,而使 didReceiveLocalNotification 方法中的其余代码正常运行速度?

注意:操作 O 会破坏本地通知(删除现有通知或安排新通知)和日历(查询事件存储以更好地安排本地通知)。

最佳答案

您是否尝试过降低线程优先级?

这仅适用于 iOS 4,但您可以在 NSInitationOperation 上调用方法 setThreadPriority

关于iphone - 在 iOS 4 (iPhone) 上使用 NSInitationOperation (NSOperation) 和 NSOperationQueue 会导致速度显着下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com