So, ich habe wieder ein kleines Problem mit der ProgressBar. Eigentlich dachte ich ja wirklich, das Problem sei behoben, ich war mir sogar sicher, dass es schonmal funktioniert hat, doch gestern Abend habe ichd ann festgestellt, dass irgendwas nicht stimmt.
Also habe ich den relevanten Code einfach in ein neues Projekt gepackt, hier der Code:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
using System.Windows.Forms;
using System.Net;
using System;
using System.ComponentModel;
namespace Testwiese
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, System.EventArgs e)
{
button1.Enabled = false;
WebClient wc = new WebClient();
wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc_DownloadProgressChanged);
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(wc_DownloadFileCompleted);
wc.DownloadFileAsync(new Uri("http://www.sascha-simon.com/02.mkv"), "M:/02.mkv");
}
void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Maximum = (int)e.TotalBytesToReceive;
long bytesIn = e.BytesReceived;
progressBar1.Value = (int)bytesIn;
}
void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show("Download fertig", "Datei erfolgreich heruntergeladen.", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
}
|
Das problem ist nun, dass es mir so vorkommt, dass er die Datei zuerst herunterlädt und irgendwann mitten im Download beginnt, die progresBar zu aktualisieren. Ich hatte denselben Code bereits in anderen Projekten und da hat er die ProgressBar bereits aktualisiert, wenn er nur weniges KB geladen hatte.
Ist das Programm und die pBar dann irgendwann so bei knapp 30%, springt er einfch ans Ende der Bar und das DownloadComplete-Event wird ausgeführt, sehr komisch. Er lädt anfangs tatsächlich schon ziemlich viel, ich sehe es an meiner Statusanzeige des Traffics an der Tastatur.
Nun die wie so oft alles entscheidende Frage, an was liegt das, wo hat sich der Fehler versteckt?
Zum Testen einfach neue Form, progressbar (progressBar1) und 'nen Button (button1) draufziehen.
MfG Sascha