Gast
2010-01-01, 18:09:54
Frohes neues Jahr
da mein Programm einen sehr zeitaufwändigen Vorgang durchführt, habe ich diesen in einen Thread a la thread.start gelegt, damit die Oberfläche weiterhin reagiert. Um den Status der Bearbeitung auf der Oberfläche darzustellen, möchte ich den Text eines Labels ändern. Die benötigte Information dazu kommt aus der Klasse die diese Operation durchführt und den Wert je nach Bearbeitungsstatus ändert (bei mir das jeweils letzte bearbeitete File) Nur irgendwie bekomme ich das nicht hin.
Hab schon etwas geguckt und den Backgroundworker gefunden, aber ich bin mir nicht sicher, ob das wirklich das ist, das dafür geeignet ist, insbesondere wenn ich später weitere Threads hinzufüge die neben diesem laufen bzw. dachte ich dieser sei nicht für Benutzerinteraktionen geeignet. Ich habe irgendwo in der msdn gelesen, man soll in einem Thread nicht auf die Steuerelemente einer Form-Control zugreifen, da dies eine schäbige Vorgehensweise sein soll.
Meine Fragen:
1. Was ist ganz grob die bevorzugte Vorgehensweise um in/durch einen Thread Eigenschaften von Steuerelementen zu ändern.
2. Ich habe noch in Erinnerung, dass ggf. die ganze Form und nicht nur mein Label neu gezeichnet wird, wenn ich ein Steuerelement schnell aktualisere, stimmt das? Wie kann man das feststellen oder unterbinden, sonst fängt das an zu flackern, das Programm reagiert bereits mit meinem simplen Thread ziemlich träge.
da mein Programm einen sehr zeitaufwändigen Vorgang durchführt, habe ich diesen in einen Thread a la thread.start gelegt, damit die Oberfläche weiterhin reagiert. Um den Status der Bearbeitung auf der Oberfläche darzustellen, möchte ich den Text eines Labels ändern. Die benötigte Information dazu kommt aus der Klasse die diese Operation durchführt und den Wert je nach Bearbeitungsstatus ändert (bei mir das jeweils letzte bearbeitete File) Nur irgendwie bekomme ich das nicht hin.
Hab schon etwas geguckt und den Backgroundworker gefunden, aber ich bin mir nicht sicher, ob das wirklich das ist, das dafür geeignet ist, insbesondere wenn ich später weitere Threads hinzufüge die neben diesem laufen bzw. dachte ich dieser sei nicht für Benutzerinteraktionen geeignet. Ich habe irgendwo in der msdn gelesen, man soll in einem Thread nicht auf die Steuerelemente einer Form-Control zugreifen, da dies eine schäbige Vorgehensweise sein soll.
Meine Fragen:
1. Was ist ganz grob die bevorzugte Vorgehensweise um in/durch einen Thread Eigenschaften von Steuerelementen zu ändern.
2. Ich habe noch in Erinnerung, dass ggf. die ganze Form und nicht nur mein Label neu gezeichnet wird, wenn ich ein Steuerelement schnell aktualisere, stimmt das? Wie kann man das feststellen oder unterbinden, sonst fängt das an zu flackern, das Programm reagiert bereits mit meinem simplen Thread ziemlich träge.