Hi. Ich hab mir einen Updater gemacht, der ladet bestimmte datein runter und soll in einer progressBar den aktuellen Stand zeigen. Das ganze habe ich etwas umständlich gemacht, aber es müsste funktionieren.
private void button2_Click(object sender, EventArgs e)
{
WebRequest request = WebRequest.Create(ini_community_url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
double groeße = response.ContentLength;
response.Close();
progressBar1.Maximum = Convert.ToInt32(groeße);
button2.Enabled = false;
backgroundWorker1.RunWorkerAsync();
backgroundWorker1.WorkerReportsProgress = true;
//tmpDaten löschen
//File.Delete(tempcommunity);
}
private void timer1_Tick(object sender, EventArgs e)
{
string pfad = Application.StartupPath + "\\Downloads\\Gothic_3_Community_Patch_v1.4.exe";
FileInfo fi = new FileInfo(pfad);
double lenght = fi.Length;
backgroundWorker1.ReportProgress(Convert.ToInt32(lenght));
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string pfad = Application.StartupPath + "\\Downloads\\Gothic_3_Community_Patch_v1.4.exe";
timer1.Enabled = true;
WebClient wc = new WebClient();
wc.DownloadFile(ini_community_url, pfad);
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
timer1.Enabled = false;
button2.Enabled = true;
}
Ich finde jedoch nicht den Fehler, da sich der progressBar nicht verändert! Könnt ihr mir vielleicht weiterhelfen?
EDIT: Hab das Problem indentifiziert, der Timer wird nicht aktiviert! aber warum nicht?
Hallo,
finde auf den ersten Blick kein timer1.Start().
Ich denke, dass Du mit der Enabled, dies bewerkstelligen willst. Meiner Meinung geht das nicht. Weiss allerdings nicht was die Enabled Eigenschaft beim Timer genau macht.
Vielleicht einfach mal mit Start / Stop probieren.
Tschüss
@a957m: Mit der Methode enabled erreicht man, dass Start aufgerufen wird (das habe ich schon mal mit dem Reflector in Erfahrung gebracht).
Das sollte also zumindest nicht der Fehler sein
Probiers mal mit den Async-Methoden.
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.