VS 2008 SP1DownloadStringAysnc - 進行状況を表示しない
私はDownloadStringAysncを使用しています。しかし、ProgressChangedイベントは、文字列がダウンロードされるまで進行状況を表示しません。
大きなファイルに含まれている文字列をダウンロードしようとしても。プログラムは応答のままですので、何かをしていることがわかります。ただし、進行状況が完了してprogressChangedイベントが発生したときです。
私はこれをprogressChangedとDownloadStringCompletedとして知られています。ただし、ファイルがかなり大きいので、一時停止する必要があります。
これは現在使用しているコードスニペットです。そしてその出力は以下の通りです。 e.progresspercentageが100%であるのは奇妙なことです。そして、二度呼ばれるようです。編集が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) + " ]");
}
を使用して、任意の助言のための
多くのおかげで、
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 + " ]");
}
===========
結果は同じです。
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Completed data: [ 1.0.11 ]
あなたのコードでは、本当にメソッドのシグネチャに角かっこから8つ分だけインデントされていますか?前に見たことがあるときはいつも、コードを入力するのは間違いだと思っていましたが、あなたはどこにいてもそれを見ることができます。 –