除了主线程还有其他特殊线程吗?

时间:2013-10-04 08:28:36

标签: objective-c

例如,如果我们使用ABAddressBook,我们必须只使用一个线程。

好吧,我不希望那个线程成为主线程。

但是,所有其他线程都不是唯一的。例如,如何创建NSOperationQueue,只使用一个特殊线程?

2 个答案:

答案 0 :(得分:1)

这可能会帮助你。 是的,您可以在后台线程上执行除邮件线程以外的操作。

PerformSelectorInBackground:withObject:是一种可能的解决方案。

dispatch_queue_t workQ = dispatch_queue_create("bgWorkQ", 0);
dispatch_async(workQ, ^{
    // This code is now running in a background thread.
    // Do all your loading here...

    });
});
dispatch_release(workQ) 

这是NSOperation Queue Sample Tutorial的链接 enter link description here

答案 1 :(得分:1)

您可以在创建ABAddressBook实例的同一队列中使用源自ABAddressBook的地址簿类型。它不必是主队列。如果要在队列之间传递引用,则必须将它们导入到在目标队列上创建的另一个ABAddressBook实例中。这是一个相对便宜的操作。