【问题标题】:Cancelling upload with WebClient?使用 WebClient 取消上传?
【发布时间】:2012-04-04 14:39:49
【问题描述】:

使用以下 VB.Net 简单代码在 FTP 中上传文件,对 WebClient.CancelAsync() 的调用实际上不会取消上传。

有人知道原因吗?对此可以做些什么?

Private Sub UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs)
    'TO-DO: Why is pbar empty?
    ProgressBar1.Value = e.ProgressPercentage

    Label1.Text = e.BytesSent & " bytes sent"
End Sub

Private Sub UploadFileCompleted(ByVal sender As Object, ByVal e As System.Net.UploadFileCompletedEventArgs)
    MessageBox.Show("Done!")
    Button1.Text = "Upload"
    ProgressBar1.Value = 0
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim client As New WebClient

    If Button1.Text = "Cancel" Then
        'TO-DO: Doesn't actually cancel upload!
        client.CancelAsync()

        Button1.Text = "Upload"
        ProgressBar1.Value = 0
    Else
        Button1.Text = "Cancel"

        Const MYFILE = "big.file.bin"
        Const LocalFile As String = "C:\" & MYFILE

        Dim RemoteFile As String = "ftp://upload.acme.com/" & MYFILE

        client.Credentials = New NetworkCredential("anonymous", "test")
        client.Proxy = Nothing

        AddHandler client.UploadFileCompleted, AddressOf UploadFileCompleted
        AddHandler client.UploadProgressChanged, AddressOf UploadProgressChanged

        ProgressBar1.Maximum = 100

        Try
            client.UploadFileAsync(New Uri(RemoteFile), LocalFile)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

        client.Dispose()
    End If
End Sub

谢谢。

【问题讨论】:

    标签: vb.net ftp webclient


    【解决方案1】:

    我自己不使用 VB,但在我看来,您在错误的客户端上调用了 client.cancelAsync()。

    每次按下取消/上传按钮时,您都会创建一个新客户端。

    如果您想取消您启动的第一个客户端,您需要在 click_handler 外部将其实例化。

    另外你为什么使用按钮标签来检查客户端是否应该被取消?

    如果 client.IsBusy 可以这样做 ...

    【讨论】:

    • 我不知道,我只是在谷歌上搜索了示例并找到了上述内容。谢谢你的信息,我会调查的。
    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2023-03-31
    • 2020-07-28
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多