异步线程操作
来源:互联网 发布:剑网三淘宝买金哪家 编辑:程序博客网 时间:2024/05/21 11:37
1.异步线程的方便之处就是在于可以同时处理多个任务,并且相互不会影响。最经典的案例就是网络请求和界面的卡顿之间的关系。其次还有很多读写数据之类的耗时操作,这些时候如果用异步线程处理就会达到界面流畅的效果。
2.今天写网络请求的封装的时候遇到了一个问题就是提示框开启和关闭竟然在数据返回后同时弹出和关闭。这样的效果显示不是我所想要的,而这些就是同步处理的结果。
3.其实不管是AFNetworking还是ASIHttp都是支持多线程下载的,但是你使用的时候必定在此基础上封装,而封装类库的时候你是否也做到了异步处理就不得而知了。
4.好,废话到此结束,直接上代码
//开启风火轮
[SVProgressHUD showInfoWithStatus:@”正在请求,请稍后”];
requestDic=[NSDictionary dictionaryWithObjectsAndKeys:@”“,@”headIcon”,self.username.text,@”nick”,_reginPhoneStr,@”userId”,_regionCodeStr,@”password”,simCardNum,@”simCard”, nil];
[HSAppConfig registerUserType:PhoneRegisters WithRegistDic:requestDic WithImagesUpload:nil WithRegisterResultBlock:^(BOOL reslut) {
if (reslut) {
[SVProgressHUD showSuccessWithStatus:@”注册成功”];
}
else
[SVProgressHUD showErrorWithStatus:@”注册失败,请重试”];
}];
5.这个时候就是错误的效果,界面卡顿,数据操作实际是同步的。所以这个时候就需要开启一个异步操作的线程。代码如下
(1)dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 耗时的操作
(2)
dispatch_async(dispatch_get_main_queue(), ^{
(3)
//处理ui效果
});
});
这3个地方具体怎么跟上面的代码搭配就不必我再继续详解了吧?
- 异步线程操作
- IOS-线程异步操作GCD
- IOS-线程异步操作dispatch_queue_t
- IOS-线程异步操作GCD
- 线程实用详解--------(四)异步操作
- asynctask 异步线程类进行多线程操作
- ios的线程和同步异步操作
- 线程操作中同步操作与异步操作的区别
- 异步线程
- 线程异步
- 线程异步
- C# 线程知识--使用Task执行异步操作
- 【Android高级部分】线程和异步操作-AsyncTask使用
- Android 学习笔记 线程操作 异步任务 AsyncTask
- iOS实现多个异步线程同步的操作
- 使用Spring的TaskExecutor的线程池执行异步操作
- C# 线程知识--使用Task执行异步操作
- Thread+Handler异步执行耗时操作更新UI线程界面
- 搭建struts2环境
- 如何学习
- HBase Coprocessor 剖析与编程实践
- 19.Happy Number-Leetcode
- A - 求奇数的乘积 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta
- 异步线程操作
- Android拍照
- vertex normal
- hibernate c3p0 连接无法释放 阻塞数据库操作
- git提交android项目 window8
- 第九周项目二 深复制函数(2)
- Java中StringBuffer类和String的区别
- Struts2中的paramsPrepareParamsStack
- 第四章 CSS盒子模型