我的代码看起来像这样:
dispatch_async(background_save_queue, ^{
NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init];
[context setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
[context setPersistentStoreCoordinator:coordinator];
[[NSNotificationCenter defaultCenter] addObserver:mainContext selector:@selector(mergeChangesFromContextDidSaveNotification:) name:NSManagedObjectContextDidSaveNotification object:context];
//code to create objects with core data in context ("context" variable)
[context save:nil];
[context release];
}
没有多线程的类似代码(只有一个上下文)效果更好。
我的代码是否错误,是否有其他使用多线程填充核心数据对象的示例?
答案 0 :(得分:0)
最后,我检查了另一个线程并不慢于主线程。问题是数据源中有很多记录,如果此记录已写入数据库,我需要对每条记录执行检查。因此,我的数据库创建过程的速度在很大程度上取决于记录和数据库结构的计数。