GetFtpConnection()连接超时如果比较长的话,只要有一个失败就能把你的程序拖得很慢。

解决方案 »

  1.   

    要改善的话,要么用socket自己从底层实现,
    要么改CInternetSession的Option的timeout
      

  2.   

    并不是开越多的线程,效率就越高,因为线程间的调度也是要耗资源的。你可以用winsockAPI,试一试!
      

  3.   

    我刚才试着改了一下timeout值,发现效果不明显,有个人写的同样程序速度是我的4倍多,看来只有用WinSock从底层写了。
    请问有源代码吗?或者FTP传输协议的详细资料也行。
    解决后马上给分。
    多谢。
      

  4.   

    windows调度线城并不非常优秀,98下一个进程超过16个线程效率就开始下降,2000/nt之类没看到具体的数目,但是500个线程肯定已经过了峰值了吧!
      

  5.   

    我成功了!!!!!
    其实问题不在CFtpConnection有多慢,事实上根本不慢,尤其在调整了timeout值之后。
    问题在于线程的调度。我有一个WatcherProc用于监视各个线程是否结束,可能是此线程(WatchProc()也是一个线程)持续占用CPU,我在研究了VC的mtgdi例子之后给WatchProc()及SearchFtpProc()中加入了Sleep(0)用于告诉系统把时间片分给其他线程,尤其在WatcherProc()之中加了Sleep(0)后性能有了飞跃!!
    我在此把自己的经验写出来与大家共同探讨,同时也感谢各位的指教。
    现在给分。