首页 > iOS: GCD怎么取消

iOS: GCD怎么取消

iOS中GCD怎么取消?


想取消的时候,在block中 return 就可以了


Block 一旦在 dispatch queue 中 submit,这个 block 就交给了 GCD 处理,我们就无法控制这个 block了。


你需要NSOperation,NSOperation天生支持Cancel,调用其cancel方法即可


GCD原生并不支持取消操作。
dispatch_suspend函数也只能暂停开启新的未执行的block,已经处于执行中的block是无法暂停的。

但是,通过参考NSOperation的cancel机制,你只要加一个外边变量,用于标记block是否需要取消。然后block中通过及时的检测这个外部变量的状态,当发现需要取消时,停止block中的后续操作,释放资源。就能达到及时取消block的目的。这里有个例子:https://github.com/Tinghui/HUIGCDDispatchAsync

【热门文章】
【热门文章】