如何在Objective c中运行后台进程/多线程进程以获得更好的应用程序性能

时间:2014-01-08 15:25:39

标签: ios objective-c

执行从手机访问通讯录并保存到本地sqlite3数据库的后台进程。我在下面做过。

[self performSelectorInBackground:@selector(syncAddressBookToDB:) withObject:nil];
 - (void)syncAddressBookToDB:(id)sender
{
   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

 // accessing the address book and saving to the database.
   GVDBManager *objDB = [GVDBManager getSharedInstance];
   [objDB getContactsFromAddBook];
   [objDB syncPhoneBookWithVcardsTable];

   [pool drain];
}

有没有更好的方法来实现后台/多线程流程来提高我的应用程序的性能。任何人请建议我更好的解决方案。

1 个答案:

答案 0 :(得分:1)

使用Grand Central Dispatch通常是使用performSelectorInBackground:方法处理此类任务的更好和更推荐的方法。你可以这样做:

dispatch_queue_t loadQueue = dispatch_queue_create("Image loader", NULL);
dispatch_async(loadQueue, ^{
    // Your code to run in the background here
});