以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何避免执行FTP多个任务,项目卡死的情况  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=77458)

--  作者:黄训良
--  发布时间:2015/11/18 16:36:00
--  [求助]如何避免执行FTP多个任务,项目卡死的情况
如何避免执行FTP多个任务,项目卡死的情况,类似下载工具那样的功能!
--  作者:大红袍
--  发布时间:2015/11/18 16:46:00
--  
多线程才能避免卡死。
--  作者:黄训良
--  发布时间:2015/11/18 17:05:00
--  
多线程+Foxtable 的FTP照样卡死
如何办呢?
--  作者:大红袍
--  发布时间:2015/11/18 17:06:00
--  

例子


--  作者:黄训良
--  发布时间:2015/11/18 17:38:00
--  

请老师看看:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:ftp多线程测试.table


--  作者:大红袍
--  发布时间:2015/11/18 18:01:00
--  

测试,没问题。而且你例子不要做那么复杂。在线程里面写一句upload就好了嘛。

 

我简化了,多个进程同时upload的时候,不会卡住。

 

 


--  作者:黄训良
--  发布时间:2015/11/18 21:17:00
--  
以下是引用大红袍在2015/11/18 18:01:00的发言:

测试,没问题。而且你例子不要做那么复杂。在线程里面写一句upload就好了嘛。

 

我简化了,多个进程同时upload的时候,不会卡住。

 

 

我这儿还是卡!

老师的在哪儿呢?

[此贴子已经被作者于2015/11/19 8:34:56编辑过]

--  作者:大红袍
--  发布时间:2015/11/19 9:26:00
--  

呃,不应该卡。测试代码如下

 

调用

 

Dim drs As List(Of DataRow)
drs = DataTables("TempTable").Select("")
For Each dr1 As DataRow In drs
    Dim t1 As New System.Threading.Thread(AddressOf s1)
    t1.Start()
Next

 

全局代码

 

Public Sub s1()
try
    Dim dr As DataRow
    dr = DataTables("ServeIP").DataRows(0)
    Dim ftp As new FTPClient
    ftp.Host = dr("IP")
    ftp.Account = dr("Account")
    ftp.Password = dr("Password")
    ftp.Port = dr("Port")
    ftp.UTF8 = True
   
    If ftp.Connect = True
        Dim fname As String = Rand.NextString(12)
        FileSys.CopyFile("d:/test.pdf", "d:\\test\\" & fname)
        ftp.Upload("d:\\test\\" & fname,"/test/" & fname & ".ftp")
    Else
        output.show("ftp连接失败")
    End If
catch ex As exception
    output.show(ex.message)
End try
End Sub

 


--  作者:黄训良
--  发布时间:2015/11/19 12:35:00
--  
不行,还是卡!上传的文件大于5M特别明显!
--  作者:大红袍
--  发布时间:2015/11/19 12:44:00
--  
测试8M的文件,没问题啊。我本地ftp测试的。