【问题标题】:VB.net Webclient.DownloadFileAsync Not DownloadingVB.net Webclient.DownloadFileAsync 不下载
【发布时间】:2011-12-11 10:02:19
【问题描述】:

我正在尝试为我的程序制作下载管理器。但是当我运行这段代码时,它会给我一个消息框说“下载开始”,但就是这样。我没有下载任何文件或进度条更改?有谁知道为什么?

Public Class frmDownloader

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WebClient1.DownloadFileAsync(New Uri("https://s3.amazonaws.com/MinecraftDownload/launcher/Minecraft_Server.exe"), "C:\hi.exe")
        MsgBox("download started")
    End Sub

    Private Sub WebClient1_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles WebClient1.DownloadProgressChanged
        ProgressBar1.Value = e.ProgressPercentage
        MsgBox("Download Progress Changed")
    End Sub


End Class

【问题讨论】:

标签: vb.net webclient web-scraping downloadfileasync


【解决方案1】:

DownloadProgressChanged 方法在与开始下载的线程不同的线程上调用。在此回调中,您似乎正在操纵一些 GUI 元素:ProgressBar1.Value。您永远不应在与创建它们的线程不同的线程上操作 GUI 元素,否则您可能会遇到异常。根据您正在处理的应用程序的类型,有不同的方法可以在 GUI 线程上编组调用。例如,在 WinForms 中,您应该使用 Control.BeginInvoke 方法。在 WPF 和 Silverlight 中,等价于 Dispatcher.BeginInvoke

【讨论】:

  • 感谢您的回应...但我不明白对不起。你能举个例子吗。 :) 谢谢。我正在处理一个普通的表单项目,我只需要为我的游戏服务器配置程序下载一个 .jar 文件
  • @Kuzon,如果您正在进行 WinForms/WPF 开发,您绝对应该阅读有关此问题的信息。这是一篇很好的博文,详细解释了:weblogs.asp.net/justin_rogers/pages/126345.aspx
  • 哦,伙计...这比我的水平高一点 XD 我是一个自学成才的 14 岁孩子...我真的很挣扎,我想我暂时放弃这个想法,我只是无法理解这个 atm :( 感谢您的帮助...我什至不知道 WinForms/WPF 开发意味着什么...我所知道的是我进入 VB.net 并单击表单应用程序...我很困惑XD
猜你喜欢
  • 1970-01-01
  • 2011-01-03
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多