VS 2008 SP1DownloadStringAysnc - 不显示进度
我正在使用DownloadStringAysnc。但是,ProgressChanged事件直到字符串被下载后才显示进度。
即使当我尝试下载包含在大文件中的字符串时。程序仍然是响应,所以我知道它正在做一些事情。但是,progressChanged事件触发完成后,进度已经完成。
我知道这是progressChanged和DownloadStringCompleted之后立即触发。但是,它们应该是一个暂停,因为该文件相当大。
这是我目前使用的代码片段。和下面的输出。奇怪的是,e.progresspercentage是100%。似乎被召唤了两次。
非常感谢任何意见,
Output in the progress changed event
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Completed Version userstate: [ Version1 ]
private void UpdateAvailable()
{
WebClient wbCheckUpdates = new WebClient();
wbCheckUpdates.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wbCheckUpdates_DownloadProgressChanged);
wbCheckUpdates.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wbCheckUpdates_DownloadStringCompleted);
DownloadFiles df = new DownloadFiles();
string webServerURL = df.webServerPath;
wbCheckUpdates.DownloadStringAsync(new Uri(Path.Combine(webServerURL, "version.txt")), "Version1");
}
void wbCheckUpdates_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
Console.WriteLine("Progress version changed userstate: [ " + e.UserState + " ]");
progressBar1.Value = e.ProgressPercentage;
Console.WriteLine("progressBar1.Value [ " + this.progressBar1.Value + " ]");
}
void wbCheckUpdates_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
Console.WriteLine("Completed version userstate: [ " + e.UserState + " ]");
}
===========使用编辑DownloadDataAysnc ===============
wbCheckUpdates.DownloadDataAsync(new Uri(Path.Combine(webServerURL, "version.txt")), "Version1");
void wbCheckUpdates_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
byte[] result = e.Result;
Console.WriteLine("Completed data: [ " + System.Text.ASCIIEncoding.Default.GetString(result) + " ]");
}
的结果是一样的:
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Completed data: [ 1.0.11 ]
只是好奇:在你的代码中,你真的有方法签名从括号中缩进八个空格吗?每当我看到之前,我认为这是输入代码时出错,但我发现你到处都有。 – 2009-08-01 13:34:54