多线程之NSOperation

#import "ViewController.h"
#define kURL @"http://avatar.csdn.net/2/C/D/1_totogo2010.jpg"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSInvocationOperation *operation = [[NSInvocationOperation alloc]initWithTarget:self
                                                                           selector:@selector(downloadImage:)
                                                                             object:kURL];

    NSOperationQueue *queue = [[NSOperationQueue alloc]init];
    [queue addOperation:operation];
	// Do any additional setup after loading the view, typically from a nib.
}

-(void)downloadImage:(NSString *)url{
    NSLog(@"url:%@", url);
    NSURL *nsUrl = [NSURL URLWithString:url];
    NSData *data = [[NSData alloc]initWithContentsOfURL:nsUrl];
    UIImage * image = [[UIImage alloc]initWithData:data];
    [self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:YES];
}
-(void)updateUI:(UIImage*) image{
    self.imageView.image = image;
}

  

时间: 2024-08-29 14:39:26

多线程之NSOperation的相关文章

iOS开发多线程之NSOperation NSOperationQueue

- (void)viewDidLoad { [super viewDidLoad]; /* NSOperation和NSOperationQueue实现多线程编程 步骤:将执行的操作封装到NSOperation对象中 将NSOperation对象添加到NSOperationQueue中 系统将NSOperation对象取出来 将封装的操作放到一条新线程执行 NSOperation的子类: NSInvocationOperation 封装 initWithTarget:selector:objec

多线程之NSOperation和NSOperationQueue

这篇文章里我将不过多的谈及理论知识,这些东西会的自然会,不会的,看多了也是云里雾里.下面我讲更多的用代码+注释的方式来讲如何使用NSOperation和NSOperationQueue. 1.NSOperation.是抽象类,不能够直接使用,而是使用子类NSInvocationOperation和NSBlockOperation来实际执行任务.NSOperation本身和多线程是没有任何关系的,她只是封装了一个代码段和数据去实现一个功能. 1.1.NSInvocationOperation,基于

IOS多线程之NSOperation学习总结

NSOperation简介 1.NSOperation的作用 配合使用NSOperation和NSOperationQueue也能实现多线程编程 2.NSOperation和NSOperationQueue实现多线程的具体步骤 先将需要执行的操作封装到一个NSOperation对象中 然后将NSOperation对象添加到NSOperationQueue中 系统会自动将NSOperationQueue中的NSOperation取出来 将取出的NSOperation封装的操作放到一条新线程中执行

ios多线程之NSOperation和NSOperationQueue

NSOperation的作用 配合使用NSOperation和NSOperationQueue也能实现多线程编程 1.NSOperation和NSOperationQueue实现多线程的具体步骤 2.先将需要执行的操作封装到一个NSOperation对象中 3.然后将NSOperation对象添加到NSOperationQueue中 4.系统会自动将NSOperationQueue中的NSOperation取出来 5.将取出的NSOperation封装的操作放到一条新线程中执行 NSOperat

iOS--多线程之NSOperation

NSOperation 一.NSOperation简单介绍 1.NSOperation简介 ①.简单说明 NSOperation的作?:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation对象添加到NSOperationQueue中 (3)系统会?动将NSOperationQueue中的N

IOS多线程之NSOperation

一.并发数 (1)并发数:同时执?行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. (3)最?大并发数的相关?方法 - (NSInteger)maxConcurrentOperationCount;- (void)setMaxConcurrentOperationCount:(NSInteger)cnt; 说明:如果没有设置最大并发数,那么并发的个数是由系统内存和CPU决定的,可能内存多久开多一点,内存少就开少一点. 注意:num的

iOS多线程之NSOperation的使用

NSOperation对象的使用步骤 NSOperation对象描述了一个操作任务:NSOperationQueue对象描述了一个任务队列,相当于GCD的dispatch_queue_t NSOperation及NSOperationQueue可以任务是GCD之上的面向对象封装 GCD提供了更底层的控制,NSOperationQueue在GCD之上实现了一些方便的功能,这些功能对于开发者而言通常是最好最安全的选择 基本使用步骤 : 1)定义操作队列 2)定义操作 3)将操作添加到队列 提示: 一

iOS多线程之NSOperation,NSOperationQueue

使用 NSOperation的方式有两种, 一种是用定义好的两个子类: NSInvocationOperation 和 NSBlockOperation. 另一种是继承NSOperation 如果你也熟悉Java,NSOperation就和java.lang.Runnable接口很相似.和Java的Runnable一样,NSOperation也是设计用来扩展的,只需继承重写NSOperation的一个方法main.相当与java 中Runnalbe的Run方法.然后把NSOperation子类的

多线程之pthread, NSThread, NSOperation, GCD

关于多线程会有一系列如下:多线程之概念解析 多线程之pthread, NSThread, NSOperation, GCD 多线程之NSThread 多线程之NSOperation 多线程之GCD pthread:跨平台,适用于多种操作系统,可移植性强,是一套纯C语言的通用API,且线程的生命周期需要程序员自己管理,使用难度较大,所以在实际开发中通常不使用. NThread:是苹果对pthread的一个封装.通过封装可以在Cocoa环境中,可以更简易地用多线程.线程的生命周期由程序员管理.每个N