Laden...

(Backgroundworker) DoWork startet nach jeden Aufruf einmal öfter

Erstellt von diego2k vor 14 Jahren Letzter Beitrag vor 14 Jahren 794 Views
D
diego2k Themenstarter:in
99 Beiträge seit 2008
vor 14 Jahren
(Backgroundworker) DoWork startet nach jeden Aufruf einmal öfter

Hallo!

Beim ersten klick auf den Button1 läuft alles normal durch. Nach dem 2 klick wir das doWork 2mal aufgerufen nach dem 3klick 3mal usw….

Wie kann das sein?

   private void button1_Click(object sender, EventArgs e)
        {
            progressBar1.Maximum = 100;
            backgroundWorker1.WorkerReportsProgress = true;
            backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
            backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
            backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
            backgroundWorker1.RunWorkerAsync();
        }


        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 0; i < 100; i++)
            {
                Thread.Sleep(100);
                backgroundWorker1.ReportProgress(i); //run in back thread
            }
        }


        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) //call back method
        {
            progressBar1.Value = e.ProgressPercentage;
        }

        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) //call back method
        {
            progressBar1.Value = progressBar1.Maximum;
        }

M
205 Beiträge seit 2008
vor 14 Jahren

HAllo, mit der Zeile:

 backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);

abonierst du das Event zum Wiederholten mal. Mit += wird eine Callbackmethode einer Liste entsprechend dem EventWe hinzugefügt. Wenn das Event jetzt auslöst wird jede Callbackmethode aufgerufen (Du legst deine Methoden immer wieder auf die Liste)

mfg

D
diego2k Themenstarter:in
99 Beiträge seit 2008
vor 14 Jahren

hallo,

ist wahr ... herzlichen dank