iOS NSOperation學習

來源:互聯網
上載者:User

標籤:sop   pre   .com   ios   cut   init   enc   sel   nil   

為什麼要用NSOperation?為什麼不用GCD

在我認為NSOperation的優點是可控制性的,可以隨時斷開,暫停線程

 1   NSBlockOperation *operationA = [NSBlockOperation blockOperationWithBlock:^{ 2         for (int i = 0; i<100; i++) { 3             NSLog(@"-operation-下載圖片-%@",[NSThread currentThread]); 4         } 5     }]; 6  7     operationA.completionBlock = ^{ 8         NSLog(@"--開始下載第二張圖片--%@",[NSThread currentThread]); 9     };10 11     NSLog(@"--現在在幹嘛--%@",[NSThread currentThread]);12 13     NSOperationQueue *queue = [[NSOperationQueue alloc] init];14     [queue addOperation:operationA];

 

NSOperation添加線程依賴

NSInvocationOperation *operation1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(operationA:) object:nil];    NSInvocationOperation *operation2 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(operationB:) object:nil];    NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{        for (int i = 0; i<10; i++) {            NSLog(@"NSBlockoperation3=--1-----%@",[NSThread currentThread]);        }    }];    [operation3 addExecutionBlock:^{        for (int i = 0; i<10; i++) {            NSLog(@"NSBlockoperation3=--2-----%@",[NSThread currentThread]);        }    }];    //添加依賴  不能相互依賴    [operation1 addDependency:operation2];    [operation2 addDependency:operation3];    //建立NSOperationQueue    NSOperationQueue *queue = [[NSOperationQueue alloc] init];    [queue addOperation:operation1];    [queue addOperation:operation2];    [queue addOperation:operation3];

 

iOS NSOperation學習

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.