我有一个重载方法,它处理高度敏感的核心数据,我想实现,该方法不能并行执行。
有没有简单的方法来实现类似的东西?
更新
也许这是一个不同的问题。
所以我有一个捏手势,当用户做这个手势时,我想只执行一个方法!
但如果我现在正在iOS模拟器中模拟它,则只要用户持有此捏合手势,就会在识别出最小的捏合手势时开始执行方法并触发。
这是默认用法吗?!?!?如何编辑它,该方法仅针对每个捏合手势触发一次,与用户持有此手势的时间等无关。
答案 0 :(得分:-1)
是的。查看@synchronized
指令:http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/ObjectiveC/Chapters/ocThreading.html
答案 1 :(得分:-1)
andi1984,
当然,您可以要求该方法仅在主线程上执行。如下例所示:
- (void) sensitiveMethod {
// If necessary, rethrow on the main queue.
if (!NSThread.isMainThread) {
[[NSOperationQueue mainQueue] addOperationWithBlock: ^{
[self sensitiveMethod];
}];
return;
}
// body of your sensitive method here.
} // sensitiveMethod
安德鲁