gpt4 book ai didi

ios - 对于 viewWillAppear 中长时间运行的任务,合适的 GCD 模式是什么?

转载 作者:行者123 更新时间:2023-11-29 04:13:00 24 4
gpt4 key购买 nike

我有一些长时间运行的任务(即从数据库检索复杂数据),我需要在 View 出现时随时运行它们。我知道出于性能原因,我想将长时间运行的任务从主线程中删除。我还知道我必须返回主线程才能执行任何与 UI 相关的操作。我正在尝试找出实现此目标的正确 GCD 模式。从我在 GCD 文档中看到的来看,这似乎是“正确”的做事方式,但我很好奇人们是否发现另一种模式更有用:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

// Add long running code for off the UI thread here.

dispatch_async(dispatch_get_main_queue(), ^{

// Add UI updating code here back on the UI thread.

});
});

我基本上是说异步(IE 不阻塞 UI 线程)转到单独的线程,做一些事情,然后返回主线程并更新 UI。

最佳答案

你的方法很好。我看到的唯一缺点是您没有任何方法取消长时间运行的操作。这可能会导致内存和其他资源拥塞。

关于ios - 对于 viewWillAppear 中长时间运行的任务,合适的 GCD 模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14123926/

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