2013-12-16 16 views
0

我正在开发一个Windows应用商店,并且我正在使用WebRequest将文件上传到FTP服务器,因为这是我能找到的唯一工作, 。上传到FTP时忽略用户输入

当应用程序上传视频需要几分钟时间时,如果用户点击屏幕,应用程序将崩溃。如果没有输入,它会正常工作。

当我使用亚历克斯Pilotti的FTPS客户端DLL,这没有发生,但我无法获得使用此DLL的Windows存储认证。

在我的电脑中,这没有发生。它会一直等到视频上传后才执行用户输入,但在平板电脑中则是另一回事,也许是因为它的处理能力/内存较少,只会导致崩溃。

我在想:或许有一种方法可以在上传过程中忽略所有用户输入。

我知道这不是最好的方法,就是像这样从用户那里接受控制,但它会完成这项工作,而且只会持续几分钟。

我一直在谷歌搜索,但我找不到办法做到这一点。

我会离开我下面的代码,以防万一:

Public Async Function uploadFile(filename As String, file As StorageFile) As Task(Of Boolean) 

     Try 
      Dim ftpURL As String = "ftp://111.22.33.444" 
      Dim request As WebRequest = WebRequest.Create(ftpURL + "/" + filename) 
      request.Credentials = New NetworkCredential("user", "pass") 
      request.Method = "STOR" 
      Dim buffer As Byte() = Await ReadFileToBinary(filename, file) 
      Dim requestStream As Stream = Await request.GetRequestStreamAsync() 
      Await requestStream.WriteAsync(buffer, 0, buffer.Length) 
      Await requestStream.FlushAsync() 
      Return True 
     Catch ex As Exception 
      Return False 
     End Try 

    End Function 

回答

0

我解决了这个问题,有一个非常简单的代码行:

Await Task.Run(Function() uploadFile(filename, file)) 

为我工作。