gpt4 book ai didi

objective-c - 取消 NSManagedObjectContext performBlock

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:15 24 4
gpt4 key购买 nike

我正在使用父/子并发模式来导入大数据 block 。导入在后台执行,不会阻塞主线程,如下所示:

NSManagedObjectContext *temporaryContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
temporaryContext.parentContext = mainMOC;

[temporaryContext performBlock:^{
// import data …

// push to parent
NSError *error;
if (![temporaryContext save:&error]) {
// handle error
}

// save parent to disk asynchronously
[mainMOC performBlock:^{
NSError *error;
if (![mainMOC save:&error]) {
// handle error
}
}];
}];

一切正常,但如果我需要取消数据导入怎么办?有没有办法取消performBlock?

最佳答案

否 - block 和其他任何同步操作都不能隐式取消。

你必须将它编程为可取消

例如这里也许...将 performBLock 分成 N 个调用,每个调用只做很少的工作。

关于objective-c - 取消 NSManagedObjectContext performBlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21380296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com