gpt4 book ai didi

ios - 设置 CoreData NSManagedObjectContext 线程优先级

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:30:53 26 4
gpt4 key购买 nike

至少自 iOS 9 以来,核心数据操作唯一未弃用的线程并发类型(不在主线程中运行)是 NSPrivateQueueConcurrencyType。我现在的问题是,我想为此更改线程优先级,如下所示:

...:(int) neededPriority {
_queue = dispatch_queue_create("Worker", DISPATCH_QUEUE_SERIAL);
dispatch_set_target_queue(_queue,
dispatch_get_global_queue(neededPriority, 0));

有时我需要高优先级,有时低。但是当我调用 [_privateContext performBlock:...] 时,我无法传递具有所需优先级的参数,上下文也没有任何属性来设置其线程优先级。
因此我的问题是:有没有办法将上下文队列放入某个线程优先级?

最佳答案

NSManagedObjectContext 实例被分配队列,而不是线程。与 performBlock 例程关联的队列可以运行任意后台线程,因此您不能为上下文分配一般优先级。

相反,您可以从 performBlock block 内部调用 NSThread.setThreadPriority 来更改处理该 block 的线程的优先级。

您可能希望在更改之前保存线程的优先级,并在 block 结束时重置它。

关于ios - 设置 CoreData NSManagedObjectContext 线程优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684019/

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