zoukankan      html  css  js  c++  java
  • 多线程 线程之间的通信

    //  DYFViewController.m
    //  623-06-线程间的通信
    //
    //  Created by dyf on 14-6-23.
    //  Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.
    //
     
    #import "DYFViewController.h"
     
    @interface DYFViewController ()
    @property (weak, nonatomic) IBOutlet UIImageView *imaV;
     
    @end
     
    @implementation DYFViewController
     
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
     
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        // 1.下载图片
        [self performSelector:@selector(download) withObject:nil];
         
        // 显示、刷新界面,只能在主界面
        // 2.显示图片
    }
    /**
     *  下载图片:子线程
     */
    - (void)download
    {
        // 1.根据URL下载图片
        NSURL *url = [NSURL URLWithString:@"http://image.cache.xiu8.com/live/125/125/997729.jpg"];
        NSLog(@"---------begin");
        NSData *data = [NSData dataWithContentsOfURL:url]; // 耗时
         
        NSLog(@"-----------end");
         
        UIImage *image = [UIImage imageWithData:data];
         
        // 2.回到主线程显示图片
    //    [self.imaV performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:NO modes:nil];
        //[self performSelectorOnMainThread:@selector(settingImage:) withObject:nil waitUntilDone:NO];
        [self.imaV performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];
    }
    /**
     *  显示图片:主线程
     *
     *  @param image image
     */
    - (void)settingImage:(UIImage *)image
    {
        self.imaV.image = image;
    }
     
    @end

     小结:主线程与子线程之间的通信

     
     
  • 相关阅读:
    多项式计算
    递归算法
    递推算法
    穷举算法
    两个数用二进制表示,有多少位不同
    一个整数的二进制数中1的个数
    将十进制数转化为二进制数
    (调用方法)判断一个整数是否为素数两种方法,年份是否是闰年,交换两个数值
    快速排序算法
    用户登录系统
  • 原文地址:https://www.cnblogs.com/Cheetah-yang/p/4664148.html
Copyright © 2011-2022 走看看