IOS学习笔记44--ASIRequestHttp之BUG(一)


其实这也是无意间看到的,大家看看是不是这么回事

BUG:当下载线程数超过2时,就会影响到主线程响应用户请求的速度了

看ASIRequestHttp.m--requestFinished代码

- (void)requestFinished

{

#if DEBUG_REQUEST_STATUS || DEBUG_THROTTLING

ASI_DEBUG_LOG(@"[STATUS] Request finished: %@",self);

#endif

if ([selferror] || [selfmainRequest]) {

return;

}

if ([selfisPACFileRequest]) {

[selfreportFinished];

}else {

[selfperformSelectorOnMainThread:@selector(reportFinished)withObject:nilwaitUntilDone:[NSThreadisMainThread]];

}

}

你会发现在不使用自动代理脚本时,就会在主线程执行reportFinished。

解决办法:

一:继承ASIRequestHttp重写requestFinished方法;

二:懒人办法,直接修改原来ASIRequestHttp方法;看如下代码

- (void)requestFinished

{

#if DEBUG_REQUEST_STATUS || DEBUG_THROTTLING

    NSLog(@"[STATUS] Request finished: %@",self);

#endif

   if ([selferror] || [selfmainRequest]) {

       return;

    }

    [selfreportFinished];

}

修改完发现至少5个下载线程时也不会影响主线程了,是不是很神奇。


上个原帖地址:http://www.keakon.net/2011/08/05/%E8%AE%A9ASIHTTPRequest%E4%B8%8D%E5%8D%A0%E7%94%A8%E4%B8%BB%E7%BA%BF%E7%A8%8B


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值