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的异步代理无意是最简便的解决方案

  • 相关阅读:
    02、Rendering a Triangle
    [转]Unity性能优化之Draw Call
    [转]Directx11 3D空间坐标系认识
    设置让EditPlus不产生BAK文件
    深度优先搜索与广度优先搜索对比
    python多重继承新算法C3
    php的垃圾回收机制
    python脚本自动发邮件功能
    python的keyword模块
    EditPlus如何设置——自动换行
  • 原文地址:https://www.cnblogs.com/chen1987lei/p/2032259.html
Copyright © 2011-2022 走看看