gethttpconnection
场景:请教为什么每二次调用GetHttpConnection就会出错?
请问为什么每二次调用GetHttpConnection就会出错?在线等...
第一次用线程调用A::fn()运行正常,fnThread所做的工作也都搞定了,然后当再次调用时就会出错,为什么?
class A
{
CInternetSession m_cis;
CHttpConnection *m_pHttp;
CString m_strServer;
static unsigned __stdcall fnThread(LPVOID lpParam));
int fn(void);
.............
.............
}
int A::fn(void)
{
A* arg = this;
_beginthreadex(NULL,0, UpdateThread,(LPVOID)arg,0,&m_dwThreadID);
}
unsigned __stdcall A::fnThread(LPVOID lpParam)
{
A* cup = (CImXiliUpdate5*)lpParam;
cup-> m_cis.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,5);
cup-> m_pHttp = cup-> m_cis.GetHttpConnection(cup-> m_strServer,cup-> m_dwPort);//出错位置
unsinged int nRet = DoSomeThing();//主要是在网上查看一些文件
cup-> m_pHttp-> Close();
cup-> m_cis.Close();
_endthreadex(0);
return nRet;//(unsigned)
}
------解决方案--------------------
cup-> m_cis.Close()
执行完一次以后session被你关掉了
cup-> m_pHttp-> Close()
delete cup-> m_pHttp ;
cup-> m_pHttp = NULL ;
_endthreadex(0) ;
......
请问为什么每二次调用GetHttpConnection就会出错?在线等...
第一次用线程调用A::fn()运行正常,fnThread所做的工作也都搞定了,然后当再次调用时就会出错,为什么?
class A
{
CInternetSession m_cis;
CHttpConnection *m_pHttp;
CString m_strServer;
static unsigned __stdcall fnThread(LPVOID lpParam));
int fn(void);
.............
.............
}
int A::fn(void)
{
A* arg = this;
_beginthreadex(NULL,0, UpdateThread,(LPVOID)arg,0,&m_dwThreadID);
}
unsigned __stdcall A::fnThread(LPVOID lpParam)
{
A* cup = (CImXiliUpdate5*)lpParam;
cup-> m_cis.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,5);
cup-> m_pHttp = cup-> m_cis.GetHttpConnection(cup-> m_strServer,cup-> m_dwPort);//出错位置
unsinged int nRet = DoSomeThing();//主要是在网上查看一些文件
cup-> m_pHttp-> Close();
cup-> m_cis.Close();
_endthreadex(0);
return nRet;//(unsigned)
}
------解决方案--------------------
cup-> m_cis.Close()
执行完一次以后session被你关掉了
cup-> m_pHttp-> Close()
delete cup-> m_pHttp ;
cup-> m_pHttp = NULL ;
_endthreadex(0) ;
......