NSOperation、NSOperationQueue浅析

本文详细介绍了NSOperation及NSOperationQueue的使用方法,包括如何通过继承创建自定义操作类,以及如何利用NSOperationQueue进行任务管理。文章还特别说明了任务取消机制及其限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近在研究NSOperation、NSOperationQueue这2个类,其中走了不少的弯路,特此记录下来,一给自己增加印象,二给后来学习者提供点有用的资料。

   NSOperation是个抽象类,并不能直接拿来用,要用得先继承它。苹果封装了NSInvocationOperation和NSBlockOperation这两个类,如果这两个类不能满足要求,我们也可以自己直接继承NSOperation,写个自己的操作类。

   首先看NSOperation类中有个实例方法  - (void)cancel;  一开始以为可以取消所有的操作,但是实践证明,该方法只能取消已加入队列中,但还未运行的操作, 已经正在运行的操作是不能取消的。另NSInvocationOperation单独执行,不加入队列中,执行- (void)start; 方法是同步执行的,只有加入队列中才会并发执行。

  

   NSOperationQueue其实就是个线程池,负责管理加入队列中的操作。队列中的操作是并发执行的。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值