GCD基础总结四

上代码~


dispatch_suspend/dispatch_resume

当追加操作到Dispatch Queue时,过程中,有时候会有不希望执行的需求。或者之前的block的结果对后面的造成影响,希望后面的操作不执行等,这时候可以利用dispatch_suspend函数挂起指定的Dispatch Queue。但是这个挂起并不能保证可以立即停止队列上正在运行的block,未执行的block会被“挂起”



GCDContext

GCD允许我们为队列定义自己的上下文,因为是C语言接口,所以参数是void*,如果是oc对象,要用__bridge等关键字转为Core Foundation对象。因为是CF对象,所以要自己管理内存,一般context的关键就是内存的管理,否则会有内存泄露。



设置的一个自定义对象,设置number属性,添加到上下文。可以看到在block里获取了上下文,正确打印属性。也成功打印了自定义对象GCDContextData的dealloc方法,没有内存问题。


最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容