Autor Beitrag
chrisachern
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 04.07.07 09:09 
hallo.

ich habe eine toolstrip progress bar. ich möchte diese während ein thread läuft laufen lassen.

wenn ich die abfrage so mache läuft sie. aber leider nur bis sie der Balken voll ist.

ausblenden C#-Quelltext
1:
2:
3:
4:
                    while (newthread.ThreadState == System.Threading.ThreadState.Running)
                    {
                        tStProgressBar.PerformStep();                    
                    }


wenn ich aber noch eine abfrage dazwischen mache, um die progressar wieder an den anfang zu setzen,
passiert gar nix.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
                    while (newthread.ThreadState == System.Threading.ThreadState.Running)
                    {
                        tStProgressBar.PerformStep();

                        if (tStProgressBar1Value == tStProgressBar.Maximum)
                            tStProgressBar.Value = tStProgressBar.Minimum;
                      
                    }


kann mir jemand helfen bitte

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
chrisachern Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 05.07.07 10:00 
hab das gefühl, dass während der thread läuft die ganze form wie eingefroren ist, da auch die uhr, die
eingebaut ist, stehenbleibt.

ich glaube die progressbar erhält die richtigen werte, aber sie wird nicht neu gezeichnet.

mit welcher methode kann ich die progressbar neu zeichen lassen?

gruss
chris
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 05.07.07 12:18 
Naja, die Schleife wird pausenlos ausgeführt, da hat er ja keine Zeit die GUI zu aktualisieren. An Deiner Stelle würde ich die Sache mit der Progressbar in einen Timer packen und nur alle paar hundert Millisekunden machen lassen. In dem Timer (und mit einem entsprechend sinnvollen Intervall) kannst Du dann zur Not noch Application.DoEvents aufrufen. In Deiner Schleife würde das wahrscheinlich die Anwendung zu einer Schnecke machen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".