iOS 使用GCD多线程技术来处理耗时任务

本文介绍了如何在iOS应用中利用GCD(Grand Central Dispatch)处理耗时任务,确保主线程的流畅性。对于耗时的逻辑操作如图像处理,可以异步放入全局队列执行。而在处理耗时的UI操作如网络请求时,可以使用回调显示加载提示,并在完成时更新UI。同时,对于需要等待UI操作的情况,可以使用gcd的延迟执行功能。
摘要由CSDN通过智能技术生成

现在的iOS是默认支持多线程的,有些操作比较耗时,但这些耗时的线程不能阻塞主线程。因此需要在实现时,注意确保主线程的顺畅,及时响应用户的交互。

1. 处理耗时的逻辑操作

比如进行图像的压缩和裁剪等耗CPU或GPU的操作时,可以将这些操作放在全局队列中异步执行:

dispatch_async(dispatch_get_global_queue(0, 0), ^{
       //complex logic operation 
});

函数原型为:

dispatch_async(dispatch_queue_t queue, dispatch_block_t block);

async表明异步运行,block代表的是block操作任务,queue则是任务所处队列.

2. 处理耗时的UI操作

2.1 网络操作
有些需要与网络交互的操作,在网络返回前需要显示一个loading的菊花,然后等待网络返回,这时可以使用回调来处理。
比如:处理中的过程,定义为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值