gpt4 book ai didi

iphone - 帮助 iOS 上的多线程?

转载 作者:IT王子 更新时间:2023-10-29 07:55:28 26 4
gpt4 key购买 nike

我有一个使用 OpenEars 和 Flite 库的应用程序。问题是 Flite 库是资源密集型的,它卡住了我的应用程序。我怀疑在后台线程上运行 Flite 会解决问题,但我不知道该怎么做。

也就是说,我如何在 iOS 中实现后台线程

如果有人能指出一些教程、分享一些示例代码或任何有助于我解决此问题的一般性建议,我将不胜感激。

最佳答案

Concurrency Programming Guide by Apple 是一本不错的读物。并发编程不是您可能想要通过从 Web 复制一些示例代码并进行黑客攻击直到您满意为止的东西。了解避免麻烦的选项和原则是件好事。


一段时间后重新审视答案,如今使用 Grand Central Dispatch 几乎不会出错。在后台运行任务如下所示:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self doSomeLongTask]; // 1
dispatch_async(dispatch_get_main_queue(), ^{
[self longTaskDidFinish]; // 2
});
});

长任务 (1) 将在某个后台线程上运行,我没有发现任何问题,即。该线程中已经有一个自动释放池,您不必关心运行循环等。任务完成后,代码在主线程 (2) 上调用 -longTaskDidFinish,以便您可以更新用户界面或其他任何东西。这是一个常用的成语。

关于iphone - 帮助 iOS 上的多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360591/

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