例如在一个独立的线程中使用CInternetSession打开一个FTP连接 CFtpConnection* pFtp,设置TIMEOUT时间为5秒(不定,程序中设定)。
如果正在等待搜索中,这个时候主程序退出,就会产生内存泄漏,报告泄漏产生于pFtp,因为程序没来得及调用pFtp.Close()和delete pFtp;如果所搜索已经返回,线程自动退出就不会有什么问题。我的问题就是,有没有什么办法安全而且快速的中止搜索
大家不要吝啬自己的经验和创意啊!
如果正在等待搜索中,这个时候主程序退出,就会产生内存泄漏,报告泄漏产生于pFtp,因为程序没来得及调用pFtp.Close()和delete pFtp;如果所搜索已经返回,线程自动退出就不会有什么问题。我的问题就是,有没有什么办法安全而且快速的中止搜索
大家不要吝啬自己的经验和创意啊!
而且那个5秒是由用户设定的,总不能他设100秒我就傻等100秒再结束程序吧!
最关键的是,一旦CInternetSession开始搜索了,就无法再设置它的TIME_OUT的值了,我的线程就一直要等着它返回,再关掉返回的Connection,以便安全的回收资源。那么怎么办好呢,我继续关注!
Using WinInet HTTP functions in Full Asynchronous Mode
我用CInternetSession写过多线程程序,如果强制中止线程就会有内存泄漏。
应该用什么方法改进的吧……
所以继续在这里求一种更好的方法!