C# GUI Thread?
-
Heiho,
Ich habe zZt ein Problem mit GUI Threads.
Die Sache ist die, ein einfachen Thread zu erstellen welcher dann irgendwelche Aktionen global ausführt ist kein Problem, das kann jeder hunz.
Nur Aktionen mit den Members und nicht globale Funktionen machen mir Probleme.Ich Demonstriert mal ein konkretes Beispiel
- Ich habe als privaten Member eine Instanz eines COM Objektes
- Ich muss obj.Open aufrufen welches die Verbindung intern zu einem Server aufbaut
- Das „Open“ dauert eine Weile, und in der zeit soll ein „Please Wait“ angezeigt werden
- Das Hauptfenster im Hintergrund sollte nicht einfrieren
- Das „Please Wait“ sollte verschiebbar sein
- Die Klassen-Methode soll verwendet werden
- Die Open Funktion soll eine Methode der Klasse seinDas ist halt nun das Problem – Wie kann ich so etwas bewerkstelligen?
- Zeige ein Please Wait
- Starte Das Open in einem eigenen Thread
- Wenn Thread Funktion returnierte – schließe das Please Wait
-
Wo ist denn konkret das Problem? den Worker-Thread zu erstellen sollte doch kein Problem sein; die Kommunikation mit dem GUI-Thread muss dann über die 'Control.Invoke'-Methode laufen.
Aber wieso nimmst Du nicht einfach einen 'BackgroundWorker'?
-
Ich habe schon mehrere Tutorials gesehen wo Worker thread liefen - bei allen war aber der worker thread selber kein bestandteil der klasse und hatte auch keine zugriffe auf irgendwelche members
ich glaub ich hab hier was gefunden
http://www.java2s.com/Code/CSharp/Thread/ThreadandGUI.htm
werd ma schaun ob mir das weiter hilftdazuedit:
ich hab mir hier grad was gebastelt
http://www.c-sharpcorner.com/UploadFile/LivMic/BGWorker07032007000515AM/BGWorker.aspx
das mit dem backgroundworker sieht recht interessant aus - vielen dank fuer den tipp {=