博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发——面试篇&面试总结(五)取消GCD任务
阅读量:5917 次
发布时间:2019-06-19

本文共 373 字,大约阅读时间需要 1 分钟。

取消GCD任务

在NSOperationQueue中,我们可以随时取消已经设定要准备执行的任务(当然,已经开始的任务就无法阻止了),而GCD没法停止已经加入queue的block(其实是有的,但需要许多复杂的代码);
GCD原生并不支持取消操作。


dispatch_suspend函数也只能暂停开启新的未执行的block,已经处于执行中的block是无法暂停的。

 

实现方法:

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

转载于:https://www.cnblogs.com/stronger-ios-lcx/p/5629800.html

你可能感兴趣的文章
MySQL5.7多实例自动化部署脚本
查看>>
测试驱动开发Test Driven Development,英文缩写TDD
查看>>
美版iPhone4卡贴解锁
查看>>
第四章 查询语句:MongoDb VS MySql 4.1
查看>>
VDI序曲二十八 会话代理高可用配置
查看>>
如何使得窗口最大化?
查看>>
《跟阿铭学Linux》第11章 正则表达式:课后习题与答案
查看>>
esxi启动虚拟机“在此版本中,64 位客户机不支持 BusLogic SCSI 适配器”
查看>>
nfs安装与配置笔记
查看>>
用LoadRunner下的java vuser测试C/S架构服务器性能
查看>>
Silverlight最新动态和未来前景
查看>>
Web 2.0下一个版本是什么 3.0就要到来了吗?
查看>>
linux目录及磁盘分区
查看>>
Linux服务器综合应用配置笔记精简版
查看>>
推荐微软Windows 8 Metro应用开发虚拟实验室
查看>>
JavaScript面向对象程序设计(2): 数组
查看>>
outlook2007 配置
查看>>
数据库修复系列Part4:重建数据库日志文件
查看>>
知识点丨你一定要了解的Win10 RS2重大更新,绝不只是装补丁!
查看>>
Liferay 如何加入自定义的js库文件
查看>>