GCD多线程 在子线程中获取网络图片 在主线程更新
2024-10-19 02:21:29
子线程中得所有数据都可以直接拿到主线程中使用
//当触摸屏幕的时候,从网络上下载一张图片到控制器的view上显示
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{ //获取一个全局并行队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, );
//把任务添加到队列中执行
dispatch_async(queue, ^{
//打印当前线程
NSLog(@"%@",[NSThread currentThread]);
//从网络上下载图片
NSURL *urlstr=[NSURL URLWithString:@"http://h.hiphotos.baidu.com/baike/w%3D268/sign=30b3fb747b310a55c424d9f28f444387/1e30e924b899a9018b8d3ab11f950a7b0308f5f9.jpg"];
NSData *data=[NSData dataWithContentsOfURL:urlstr];
UIImage *image=[UIImage imageWithData:data];
//提示
NSLog(@"图片加载完毕");
dispatch_async(dispatch_get_main_queue(), ^{
self.imageView.image=image;
//打印当前线程
NSLog(@"%@",[NSThread currentThread]);
});
});
}
最新文章
- css初始化样例代码
- Linux下smokeping网络监控环境部署记录
- 2733: [HNOI2012]永无乡 - BZOJ
- 李洪强漫谈iOS开发[C语言-028]-逗号表达式
- 编写高效SQL最佳实践
- MYSQL数据备份与还原学习笔记
- java集合总结【转】
- QRMaker生成二维码,支持中文
- TCP/IP之TCP连接的建立与中止状态分析
- Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers
- MySQL Administrator的简单操作
- MySQL详解--锁,事务
- TDMA over WiFi
- Servlet(自己实现的Servlet)细节
- VS2013中调驱动
- 【linux】之查看磁盘占用情况
- 配置react-sass
- javascript的Mixins
- xgboost 简单测试
- os 模块 模块与包的初始