LoginSignup
2
3

More than 5 years have passed since last update.

Dispatch queueの実行は中止できない

Posted at

GCDのdispatch queueはdispatch_async()などで並列処理を登録できるが、一度登録した処理を破棄することはできない。
dispatch_suspend()を使うと実行を一時的に中止できるが、これはdispatch_resume()とセットで使わなければならず、queue自体をずっと停止しておけるわけではない。

このようなときは、GCDの関数ではなく、CocoaのNSOperationQueueを使うと解決できる。NSOperationQueueにはcancelAllOperationsを始め、いくつかの便利なメソッドが用意してあるので、Cocoaを使っているときは無理にGCDの関数を使うよりこちらを使った方が良いかもしれない。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3