まず、dispatch_asyncをキャンセルするための質問がたくさんあることを知っています。実行キューを停止できないと言われました。 しかし、待機中のブロックについては何も掲載されていません。実行を待っているdispatch_asyncキューをキャンセルする
私はこのようなものを実装しています。
@property(nonatomic)dispatch_queue_t My_queue = dispatch_queue_create("something", NULL)
dispatch_async(self.My_queue, ^(void){
// LONG TASK ONE
});
dispatch_async(self.My_queue, ^(void){
// LONG TASK TWO
});
dispatch_async(self.My_queue, ^(void){
// LONG TASK THREE
});
新しいスレッドでは、3つのブロックを持つキューが存在し、1つは実行され、2つは待機します。待っている2つの方法をキャンセルするには?
NSOperationキューを試しましたか? http://stackoverflow.com/questions/12317154/gcd-how-to-remove-waiting-tasks-from-serial-queue –