执行从手机访问通讯录并保存到本地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];
}
有没有更好的方法来实现后台/多线程流程来提高我的应用程序的性能。任何人请建议我更好的解决方案。
答案 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
});