1
至少从iOS 9开始,在主线程中未运行的核心数据操作的唯一未弃用的线程并发类型为NSPrivateQueueConcurrencyType。 我现在的问题是,我想改变线程的优先级为,像这样:设置CoreData NSManagedObjectContext线程优先级
...:(int) neededPriority {
_queue = dispatch_queue_create("Worker", DISPATCH_QUEUE_SERIAL);
dispatch_set_target_queue(_queue,
dispatch_get_global_queue(neededPriority, 0));
有时候,我需要一个高优先级,有时低。但是当我调用[_privateContext performBlock:...]
时,我无法传递具有所需优先级的参数,也没有任何属性设置其线程优先级。
因此我的问题:有没有什么方法可以将上下文队列放入某个线程的优先级?
如果在主线程中使用'performBlockAndWait:',则队列将在主线程上运行该块。所以任何'NSThread'调用都将应用于主线程。 –
谢谢,快速测试'NSLog(@“旧线程优先级:%f”,[NSThread threadPriority]);如果(![NSThread setThreadPriority:0.1]){ NSLog(@“Could not set priority!”); (@“New thread priority:%f”,[NSThread threadPriority]);显示它似乎工作。 – Jan