我正在使用 C# 创建一个 Windows 应用程序。它用于检查产品的任何更新版本是否可用。如果是,用户可以只使用应用程序的 UI 下载它,而无需打开任何浏览器。
应用程序中的一个窗口使用 ProgressBar 控件显示下载状态。问题是,万一互联网断开连接,应用程序不会知道。比如说,下载了 45% 之后,网络断开了;但 ProgressBar 继续显示 45%。
一旦发生这种情况,是否会引发任何财产/事件?请帮忙。附上我的代码供您参考。谢谢。
private void CheckForUpdate_Load(object sender, EventArgs e)
{
string downloadURL = Convert.ToString(ConfigurationManager.AppSettings["TempDownloadURL"]);
WebClient wcDownloadFile = new WebClient();
Uri myUri = new Uri(downloadURL);
wcDownloadFile.DownloadFileAsync(myUri, downloadLocation);
wcDownloadFile.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wcDownloadFile_DownloadProgressChanged);
}
void wcDownloadFile_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
try
{
int bytesDownloaded = Int32.Parse(e.BytesReceived.ToString());
int totalBytes = Int32.Parse(e.TotalBytesToReceive.ToString());
progBarSoftPhone.Value = e.ProgressPercentage;
lblStatus.Text = (bytesDownloaded / 1024).ToString() + " KB out of " + (totalBytes / 1024).ToString() + " KB downloaded (" + e.ProgressPercentage.ToString() + "%).";
}
catch (Exception ex)
{
MessageBox.Show("ERROR: " + ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}