iOS 多线程 NSOperation的简单使用——iOS 编码复习(八)(多线程6)
2016-03-31 16:37
302 查看
使用NSOpretion和NSOperationQueue进行多线程开发就是将NSOperation放到NSOperationQueue这个队列中,线程就会依次启动。NSOperationQueue就是一个队列。而NSOperation是相当于一个抽象类,不能直接使用,所以我们一般都使用它的两个子类来实现:NSInvocationOperation和NSBlockOperation,它们本质没有很大区别,只是block使用更方便一点。我们可以在viewDidLoad看看NSOperation提供了哪些API
NSOperation * operate = [[NSOperationalloc]init];
if (!operate.isExecuting) {//是否执行执行中
if (!operate.isReady) {//任务是否准备好
[operate start];//开始执行
}
}
//7.0之前isConcurrent判断同步、异步,7.0之后
if ([UIDevicecurrentDevice].systemVersion.intValue>7.0)
{
if (operate.isAsynchronous) {
NSLog(@"异步");
}else{
NSLog(@"同步");
}
}else{
if (operate.isConcurrent) {
NSLog(@"异步");
}else{
NSLog(@"同步");
}
}
if (operate.isFinished) {//任务是否完成
NSLog(@"完成");
}
if (operate.isCancelled) {//任务是否取消
[operate cancel];//任务取消
}
待续!
NSOperation * operate = [[NSOperationalloc]init];
if (!operate.isExecuting) {//是否执行执行中
if (!operate.isReady) {//任务是否准备好
[operate start];//开始执行
}
}
//7.0之前isConcurrent判断同步、异步,7.0之后
if ([UIDevicecurrentDevice].systemVersion.intValue>7.0)
{
if (operate.isAsynchronous) {
NSLog(@"异步");
}else{
NSLog(@"同步");
}
}else{
if (operate.isConcurrent) {
NSLog(@"异步");
}else{
NSLog(@"同步");
}
}
if (operate.isFinished) {//任务是否完成
NSLog(@"完成");
}
if (operate.isCancelled) {//任务是否取消
[operate cancel];//任务取消
}
待续!
相关文章推荐
- Python3写爬虫(四)多线程实现数据爬取
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#实现多线程的同步方法实例分析
- C#线程间不能调用剪切板的解决方法
- 浅谈chuck-lua中的多线程
- C#简单多线程同步和优先权用法实例
- C#多线程学习之(四)使用线程池进行多线程的自动管理
- C#多线程编程中的锁系统(三)
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- C#停止线程的方法
- 解析C#多线程编程中异步多线程的实现及线程池的使用
- C#子线程更新UI控件的方法实例总结
- C#多线程学习之(六)互斥对象用法实例