我正在尝试使用WinSCP和vb.net连接到SFTP服务器。一切顺利,文件上传/下载正确但在完成后,如果我以任何方式与表单交互(即按下按钮)主线程挂起大约10-15秒。然后它会恢复并且永远不会再次挂起,除非我重新启动应用程序。这对我来说似乎很奇怪,因为我使用BackgroundWorker
在一个单独的线程上执行所有WinSCP函数。我使用mySession.putFiles
进行上传,GetFiles
进行下载。这似乎只在下载/上传文件时发生。
以下是我的代码片段,它基于This Example:
Using mySession As Session = New Session
' Connect
mySession.Open(mySessionOptions)
' Upload files
Dim myTransferOptions As New TransferOptions
myTransferOptions.TransferMode = TransferMode.Binary
Dim transferResult As TransferOperationResult
transferResult = mySession.GetFiles("KidsBank/FVbal.txt", "FVbal.txt")
transferResult.Check()
ConsolePrint("Got fv")
transferResult = mySession.GetFiles("KidsBank/FERbal.txt", "FERbal.txt")
transferResult.Check()
ConsolePrint("Got fer")
transferResult = mySession.GetFiles("KidsBank/AZbal.txt", "AZbal.txt")
transferResult.Check()
ConsolePrint("Got az")
LoadingText.Text = "Downloading Check Dates..."
transferResult = mySession.GetFiles("KidsBank/FVlastcheck.txt", "FVlastcheck.txt")
transferResult.Check()
ConsolePrint("Got fv check")
transferResult = mySession.GetFiles("KidsBank/FERlastcheck.txt", "FERlastcheck.txt")
transferResult.Check()
ConsolePrint("Got fer check")
transferResult = mySession.GetFiles("KidsBank/AZlastcheck.txt", "AZlastcheck.txt")
transferResult.Check()
ConsolePrint("Got az check")
答案 0 :(得分:0)
删除ConsolePrint命令是个问题,因为我在False中使用CheckForIllegalCrossThreadCalls
进行调试。