0
NSOperation
を使用しているときにタスクをキャンセルすることができますが、GCD
を使用している場合は、タスクをキューに割り当ててから取り消すことができないため、次の実装をGCD
GCDをNSOperationqueueに変換する
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) {
[self addAllImages];
dispatch_sync(dispatch_get_main_queue(), ^(void) {
[self pageControlSetUp];
self.fullScreenImageView.hidden = YES;
});
})
NSOperation
のおかげインダー・クマール。私はパフォーマンスの点でどちらが優れているのだろうか? – hotspringGCDは内部的にGCDを使用しているため、GCDはパフォーマンス面で優れています。また、GCDは低レベルのAPIであり、NSOperationは高レベルのAPIです。どちらも長所と短所があります。あなたの問題のように、GCDの非同期ブロックをキャンセルすることはできませんので、操作が必要です。 –