zoukankan      html  css  js  c++  java
  • cchttpclient中停止网络请求的方法

    cchttpclient是异步网络连接,在网速慢的时候,应用退出了该页面,未执行的网络请求还是按照队列请求下去,这导致重新进入页面时候,新的网络请求的得不到快速响应。而cchttpclient类中并没有提供移除请求的方法,查看源码,发现所有的请求都放在s_requestQueue数组中,那么要做的就是在退出界面时候,清空这个请求队列。如下是在httpclient.cpp中添加的禁止所有请求的方法:

    void CCHttpClient::stopAllResquest()
    {
    CCHttpRequest *request = NULL;

    while (0 < s_requestQueue->count())
    {
      pthread_mutex_lock(&s_requestQueueMutex); //Get request task from queue
      if (0 != s_requestQueue->count())
      {
        request = dynamic_cast<CCHttpRequest*>(s_requestQueue->objectAtIndex(0));
        s_requestQueue->removeObjectAtIndex(0);
        // request's refcount = 1 here
      }
      pthread_mutex_unlock(&s_requestQueueMutex);

      if (NULL != request)
      {
      request->release();
      }
    }

    }

  • 相关阅读:
    Chaos网络库(一) 开篇介绍
    对Oracle中的表进行分区
    java socket编程
    SQL优化
    冒泡排序、选择排序和插入
    集合有趣的地方
    java中String s = new String("abc")创建了几个对象
    集合排序
    接口与抽象类的区别
    软件测试流程
  • 原文地址:https://www.cnblogs.com/playerboy/p/3973034.html
Copyright © 2011-2022 走看看