zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    献给需要购买 阿里云产品的朋友
    当硬件没问题的时候,提升电脑运行速度
    IIS网页GZIP压缩
    前端优化-如何计算白屏和首屏时间
    Javascript 思维导图
    总结get和post区别---面试用
    点击切换样式、以及点击自身移除样式效果
    各行换色
    计算器
    无缝轮播图
  • 原文地址:https://www.cnblogs.com/james1207/p/3253728.html
Copyright © 2011-2022 走看看