Frage

VS 2008 SP1

Ich bin der DownloadStringAysnc verwenden. Aber das Progress Ereignis zeigt nicht Fortschritt, bis die Zeichenfolge heruntergeladen wurde.

Auch wenn ich versuche, und einen String herunterladen, die in einer großen Datei enthalten ist. Die Programme bleibt Antwort, damit ich es weiß etwas tut. Jedoch ist es, wenn der Fortschritt, den die Progress Ereignis ausgelöst wird abgeschlossen hat.

ich gewußt dies als die Progress und das DownloadStringCompleted Feuer unmittelbar hintereinander. Sie sollten jedoch eine Pause sein, da die Datei sehr groß ist.

Dies ist der Code-Schnipsel Ich bin derzeit mit. Und die Ausgabe unten. Was seltsam ist die e.progresspercentage beträgt 100%. Und scheint zweimal genannt zu werden.

Vielen Dank für jede Beratung,

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 + " ]");
        }

=========== Edited mit 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) + " ]");
        }

Die Ergebnisse sind die gleichen:

Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Completed data: [ 1.0.11 ]
War es hilfreich?

Lösung

Nach der Dokumentation, DownloadStringAsync keine Fortschritte berichten. Lesen Sie die Dokumentation des WebClient.DownloadProgressChanged Ereignis .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top