以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  FTP连接速度偏慢  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=175824)

--  作者:aoc103
--  发布时间:2022/3/20 20:23:00
--  FTP连接速度偏慢
Dim ftp1 As new ftpclient
ftp1.host=var_ftpserver
ftp1.Account = var_user
ftp1.password = var_password
ftp1.Port=var_ftpport
ftp1.UTF8=True
Dim picdir As String=var_localpic \'定义图片下载位置

Dim ColName() As String = {"产品图片","表面模具图片","坯底模具图片","纸箱图片","商标图片"} \'定义字段数组
For Each dr As DataRow In DataTables("排产明细表_Table1").DataRows \'从数据表中提取数据
    For i As Integer = 0 To Colname.Length-1
        If not dr.IsNull(ColName(i)) Then \'判断当前行是否为空行
            If ftp1.FileExists(dr(ColName(i))) Then \'判断服务器是否有图片  这段代码一启动 都会卡一下
                If not FileSys.FileExists(picdir &  dr(ColName(i))) Then \' 如果本地文件不存在 则下载文件
                    ftp1.Download( dr(ColName(i)),picdir &  dr(ColName(i))) \'下载图片
                End If
            End If
        End If
    Next
Next
ftp1.Close \'关掉FTP连接
想问下 FTP连接 是否每次都要等个3到5秒?

--  作者:aoc103
--  发布时间:2022/3/20 20:52:00
--  
这段代码是放在按钮里的,每次一点击,整个窗口都会卡住
--  作者:有点蓝
--  发布时间:2022/3/20 21:26:00
--  
假设这个表有10行,然后5个图片列。也就是循环了50次,ftp1.FileExists执行了50次,网络连接往返50次,如果全部需要下载,还可能下载了50次。做这些操作卡个好几秒是正常的吧
--  作者:aoc103
--  发布时间:2022/3/21 10:22:00
--  
直接用异步函数解解决了 让他在后台自己下载 一点都不卡