2013-12-16 19 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)) 

爲我工作。