2013-10-04 28 views
0

例如,如果我們使用ABAddressBook,我們只能使用一個線程。除了主線程還有其他特殊線程嗎?

嗯,我不希望那一個線程成爲主線程。

但是,所有其他線程都不是唯一的。例如,如何創建NSOperationQueue,它只使用一個特殊線程?

回答

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隊列示例教程 enter link description here

1

可以使用從ABAddressBook上創建的ABAddressBook實例相同的隊列起始地址簿類型的鏈接。它不一定是主隊列。如果要在隊列之間傳遞引用,則必須將它們導入另一個在目標隊列上創建的ABAddressBook實例。這是一個相對便宜的操作。

+0

你是說它不一定是一樣的線程?只有它在同一隊列中? –

+0

隊列重用線程,因爲系統認爲合適,但分派的作業將在一個線程上運行。 'ABAddressBook'不是線程安全的,所以你應該爲你工作的每個線程創建'ABAddressBook'實例。 –

+0

所以,即使我使用一個不夠好的串行線程? –

相關問題