Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Controls mit .Invoke() / .Begininvoke() in Window aktualisieren lassen
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Controls mit .Invoke() / .Begininvoke() in Window aktualisieren lassen

beantworten | zitieren | melden

Hallo, ich experimentiere im Moment mit meiner Applikation. Hier werden jede Mengen von Daten kopiert und in Db's geschrieben, wozu ich auch jede Menge an Ausgaben in der Form ausgebe. das Problem ist, das die Ausgabecontrols ja die aktuellen Daten nicht sofort angezeigt werden. Nun hatte ich zuerst mit dem BackgroundWorker Erfahrungen gesammelt. Nun habe ich aber auch gesehen, das man mit dem Dispatche.Invoke() oder Dispatcher.BeginInvoke() die Controls aktualisieren kann.
Ich habe eine ListBox in der ich den akuellen Status und weitere Meldungen ausgebe. Wenn ich da eine neue Meldung absetze, dan kann ich das doch so ausgeben:


Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => lbx_Ablaufplan.Items.Insert(0, "\n\n\nNeue Dateien von Datenpool suchen und in Sammelpool kopieren ...\n")));

So wie ich das verstehe, kann ich für new Action() auch eine Delegatemethode einsetzen, oder?
Das hatte ich auch schon probiert. Das Problem ist, wenn ich das so mache werden meine COntrols nicht beschrieben, es werden keine Meldungen in der ListBox angezeigt.
Muss ich da doch noch einen Abfrage mit CheckAccess und Verify durchführen, wobei ich das so verstehe das man diese Abprüfung nur macht wenn die Aktualisierung aus einem anderen Thread aufgerufen wird?
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Problemlösung

beantworten | zitieren | melden

Das Problem kommt wohl daher, da ich die Abarbeitung meiner Abarbeitung von Dateien kopieren usw nicht in einem eigenen Thread gestartet wurde. Mache ich das, dann werden die Controls auch aktualisiert.
private Nachricht | Beiträge des Benutzers
Alf Ator
myCSharp.de - Member



Dabei seit:
Beiträge: 657

beantworten | zitieren | melden

Hallo oehrle, schau mal hier:
[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)
und hier:
[FAQ] Warum blockiert mein GUI?

Gruß, Alf
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Alf Ator am .
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Problem gelöst

beantworten | zitieren | melden

danke für die Info.
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

[gelöst]

beantworten | zitieren | melden

Problem war, das ich die Datensätze aus diversen Tabellen zusammengebaut habe, aber in dieser nicht explizit akutalisiert hatte.
private Nachricht | Beiträge des Benutzers