当前位置: 首页 > news >正文

NSInvocationOperation的cancelAllOperations不会取消正在运行的operation

原来以为cancelAllOperations时,正在运行的operation的会停止,旦实际发现是不会的。

并且在operation运行结束前,ViewController是不会dealloc的。

实际上,cancelAllOperations的作用是将在队列里排队的operation从对列里移除。


测试代码如下:

#import "ViewController.h"


@interface ViewController ()


@property (retain,nonatomic)NSOperationQueue *pQueue;


@end


@implementation ViewController


- (void)viewDidLoad

{

    [superviewDidLoad];

    self.pQueue =[[NSOperationQueuealloc]init];

    

   NSInvocationOperation *Invocation = [[NSInvocationOperationalloc]initWithTarget:selfselector:@selector(downLoadImage)object:nil];

    

    [self.pQueueaddOperation:Invocation];

    

    

    UIButton* btn = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

    btn.frame =CGRectMake(10,100, 300, 30);

    [btn setTitle:@"pop back"forState:UIControlStateNormal];

    [btn addTarget:selfaction:@selector(popBack)forControlEvents:UIControlEventTouchUpInside];

    [self.viewaddSubview:btn];


}


-(void)popBack{

    

    [self.pQueuecancelAllOperations];

    [self.navigationControllerpopViewControllerAnimated:YES];

}


-(void)dealloc{

    NSLog(@"ViewController dealloced");

}


- (void)downLoadImage

{

   sleep(5);

   NSLog(@"operation ended");

}


@end


相关文章:

  • 微软.NET俱乐部Tech-ED2006追踪报道!
  • MAC下SVN客户端Versions和Cornerstone的比较
  • 在ubuntu下用wine玩魔兽世界
  • 小孩不能吃黑枣
  • 9月23日培训日记
  • 治瘊子的小秘方
  • 前几天所有吐槽12306验证码的都应该站出来向12306道歉
  • 9月24日培训日记
  • 9月25日培训日记
  • 贷款和理财的电话
  • 星光灿烂之夜-MVP SuperStar
  • 这些事,我不作,别人也会作
  • Sybase ASE XA分布式事务支持
  • mac系统用键盘操作菜单栏
  • 专访来自微软雷德蒙总部的微软技术专家团
  • CEF与代理
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • OSS Web直传 (文件图片)
  • SegmentFault 2015 Top Rank
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 飞驰在Mesos的涡轮引擎上
  • 区块链分支循环
  • 手机端车牌号码键盘的vue组件
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 在Unity中实现一个简单的消息管理器
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​【已解决】npm install​卡主不动的情况
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (12)目标检测_SSD基于pytorch搭建代码
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)二分查找 超详细
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (学习日记)2024.02.29:UCOSIII第二节
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET delegate 委托 、 Event 事件
  • .net FrameWork简介,数组,枚举
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 使用反射注册事件
  • .netcore如何运行环境安装到Linux服务器
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [AAuto]给百宝箱增加娱乐功能
  • [ANT] 项目中应用ANT
  • [AR Foundation] 人脸检测的流程
  • [BZOJ2850]巧克力王国
  • [codeforces]Checkpoints
  • [ERROR] 不再支持目标选项 5。请使用 7 或更高版本
  • [hdu 2896] 病毒侵袭 [ac自动机][病毒特征码匹配]
  • [JavaEE系列] Thread类的基本用法