zoukankan      html  css  js  c++  java
  • iphone多线程汇总

    1,NSThread

    - (void)updateImageForCellAtIndexPath:(NSIndexPath *)indexPath
    {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    UIImage *image = [self getImageForCellAtIndexPath:indexPath];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    [cell.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];
    [pool release];
    }

    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
    [NSThread detachNewThreadSelector:@selector(updateImageForCellAtIndexPath:) toTarget:self withObject:indexPath];
    }

    2NSOperation

    首先是建立NSOperationQueue和NSOperations。NSOperationQueue会建立一个线程,每个加入到线程operation会有序的执行。

    NSOperationQueue *queue = [NSOperationQueue new];
    NSInvocationOperation *operation = [[NSInvocationOperation alloc];
    initWithTarget:self
    selector:@selector(doWork:)
    object:someObject];
    [queue addObject:operation];
    [operation release];

    下面是使用NSOperationQueue的过程:

    1. 建立一个NSOperationQueue的对象
    2. 建立一个NSOperation的对象
    3. 将operation加入到NSOperationQueue中
    4. release掉operation

    使用NSOperation有几种,现在介绍最简单的一种NSInvocationOperation,NSInvocationOperation是NSOperation的子类,允许运行在operation中的targer和selector

    3NSURLConnection

    如果你是网络应用使用NSURLConnection的异步代理无意是最简便的解决方案

  • 相关阅读:
    5.不用拷贝的对象可以用ref
    4.bind绑定
    3.bind与仿函数以及普通函数
    35.自己实现vector模板库myvector
    2.boost遍历数组容器
    1.boost库的安装
    34.share_ptr智能指针共享内存,引用计数
    33.unique_ptr独享内存智能指针
    32.智能指针auto_ptr
    131.typename在嵌套类中的作用
  • 原文地址:https://www.cnblogs.com/chen1987lei/p/2032259.html
Copyright © 2011-2022 走看看