2Pascal-新时代的Pascal

标题: 如何更高效的下载http URL文件(内含源码) [打印本页]

作者: fullhappyboy    时间: 2015-7-30 00:59
标题: 如何更高效的下载http URL文件(内含源码)
如何高效下载文件,大家有无好的解决办法。
现在抛砖【http URL下的文件下载】,用控件idhttp get来
    URL := 'http://****/**.mp4';

    var
      FileSteam: TMemoryStream;
    begin
      FileSize := '';
      FileSteam := TMemoryStream.Create;
      try
        IdHTTP1.Get(URL, FileSteam);
        FileSize := FileSteam.Size.ToString + ' bytes';
        FileSteam.SaveToFile(TPath.GetDocumentsPath + PathDelim + '**.mp4'); //保存下载好的文件
      finally
        FileSteam.Free;
      end;
    end,


这段代码可以实现正常下载,但是缺陷也很多。
用多个手机(安卓操作系统),测试时经常导致程序卡机,下载无反应。
如果文件容量小于10M下载还算行,一旦容量多大,下载就卡机。
大家有无好的控件或者好的办法来实现手机下载。
谢谢大家来发言。



作者: wang_80919    时间: 2015-7-30 08:59
非常简单,用线程下载,匿名的就行。
线程内部,最好不要有 UI。非要有,UI 部分代码用同步函数。

安卓中线程的使用_V2.4(线程和界面).txt
http://www.2pascal.com/forum.php ... =1251&fromuid=4
(出处: 2Pascal-新时代的Pascal)



参考上文的 上半部分。

作者: fullhappyboy    时间: 2015-7-30 17:24
idhttp控件,用线程模式么?
这个要试下看看,是否稳定,只要稳定,就能算好的。
谢谢啊




欢迎光临 2Pascal-新时代的Pascal (http://2pascal.com/) Powered by Discuz! X3