zoukankan      html  css  js  c++  java
  • IOS NSThread 线程间通信

    @interface HMViewController ()
    @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    
    @end
    
    @implementation HMViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        // 在子线程中调用download方法下载图片
        [self performSelectorInBackground:@selector(download) withObject:nil];
    }
    
    /**
     * 下载图片 : 子线程
     */
    - (void)download
    {
        // 1.根据URL下载图片
        NSURL *url = [NSURL URLWithString:@"http://news.baidu.com/z/resource/r/image/2014-06-22/2a1009253cf9fc7c97893a4f0fe3a7b1.jpg"];
        NSLog(@"-------begin");
        NSData *data = [NSData dataWithContentsOfURL:url]; // 这行会比较耗时
        NSLog(@"-------end");
        UIImage *image = [UIImage imageWithData:data];
        
        // 2.回到主线程显示图片
    //    [self.imageView performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:NO];
        // setImage: 1s
        [self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];
    //    [self performSelectorOnMainThread:@selector(settingImage:) withObject:image waitUntilDone:NO];
    }
    
    /**
     * 设置(显示)图片: 主线程
     */
    //- (void)settingImage:(UIImage *)image
    //{
    //    self.imageView.image = image
    //}
  • 相关阅读:
    (转) Nova是如何统计OpenStack资源
    (转) 一次批量重启引发的Neutron网络故障
    (转)理解Keystone的四种Token
    neutron 虚拟机网络问题调试
    转 Nova: 虚机的块设备总结 [Nova Instance Block Device]
    kvm 客户机系统的代码是如何运行的
    12 while循环
    11猜拳游戏
    10 if 嵌套
    09 if...elif..else语句
  • 原文地址:https://www.cnblogs.com/liuwj/p/6602112.html
Copyright © 2011-2022 走看看