探究iOS开发中多线程之间的通信

来源:互联网 发布:淘宝商城前名 编辑:程序博客网 时间:2024/06/08 17:03
在一个进程中,线程往往不是孤立存在的,一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和子线程间要进行通信。线程间通信的表现:

1个线程传递数据给另1个线程
在1个线程中执行完特定任务后,转到另1个线程继续执行任务
具体代码如下:
这里写图片描述

#import "ViewController.h"@interface ViewController (){    UIImageView *imageV;}@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    imageV = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];    [self.view addSubview:imageV];    [self performSelectorInBackground:@selector(downImage) withObject:nil];}-(void)downImage{        //从网络中下载图片    NSURL *url = [NSURL URLWithString:@"http://i8.topit.me/8/c1/31/1142319854bdc31c18o.jpg"];        //将图片转换为二进制数据    NSData *imgData = [NSData dataWithContentsOfURL:url];        //数据转换成图片    UIImage *img = [UIImage imageWithData:imgData];        //回到主线程设置图片    [self performSelectorOnMainThread:@selector(senderImage:) withObject:img waitUntilDone:NO];}-(void)senderImage:(UIImage *)image{    imageV.image = image;}

效果图:
这里写图片描述

0 0
原创粉丝点击