C# Timer durchläuft For Schleife zu schnell



  • Hi ich habe in einer Listbox Webseiten abgelegt. Ein Timer soll jetzt der Reihe nach alle Seiten durchlaufen. Aber leider wird meine For Schleife einfach zu schnell durchlaufen, sodass er eigentlich immer nur die letzte Seite startet.

    Wenn ich mir aber eine MSG Box ausgeben lasse, werden mir die Indizes angezeigt, aber auch hier wird von 1,2,3.. viel zu schnell gezählt obwohl das Timer Intervall auf 10000 gesetzt ist.

    [code="cs"]int x;
    private void timer1_Tick(object sender, EventArgs e)
    {
    for (x = 0; x < listBox1.Items.Count; x++)
    {
    //MessageBox.Show("Hi" + x);
    webBrowser1.Navigate(listBox1.Items[x].ToString());
    }
    }[/code

    Wäre schön, wenn mir jemand helfen könnte! Danke!



  • Du durchläufst ja auch beim Timer-Tick jedesmal alle ListBox-Items.

    Du mußt die Schleife entfernen und stattdessen eine Membervariable für den aktuellen ListBox-Index anlegen und benutzen.

    if (_index < listBox1.Items.Count)
    {
        webBrowser1.Navigate(listBox1.Items[_index].ToString());
        _index++;
    }
    else
    {
        timer1.Stop();
    }
    


  • Ach, ja das macht Sinn!

    Danke dir!


Anmelden zum Antworten