Entwickler-Ecke

WinForms - Aus einen Thread eine Methode aufrufen nicht möglich


wubudu - Do 19.06.08 23:00
Titel: Aus einen Thread eine Methode aufrufen nicht möglich
Hallo Leute,

ich möchte aus einen Thread eine Methode aufrufen. Diese Methode ändert Einstellungen von einer textBox. Ich hab das versucht, doch es funktioniert nicht. Weiß einer warum? Auch wenn ich z.B. eine Instanz der Form1 anlege und die textBox dann anspreche ...., es funktinoiert nicht! Kann mir einer auf die Sprünge helfen, warum das nicht geht?


wubdudu :!:


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Do 19.06.2008 um 23:08


Christian S. - Do 19.06.08 23:07

Hallo!

Wenn Du auf die GUI zugreifen willst, dann musst Du das im GUI-Thread machen. Dazu gibt es in WinForms die Invoke-Methode und in WPF gibt Dispatcher.Invoke.

Beide bekommen als Parameter eine Methode übergeben, welche dann im GUI-Thread ausgeführt wird. Die Doku hat IIRC ganz guten Beispiel-Code für beide Fälle.

Grüße
Christian


wubudu - Do 19.06.08 23:44

Hallo Christian S.,

user profile iconChristian S. hat folgendes geschrieben:
Die Doku hat IIRC ganz guten Beispiel-Code für beide Fälle.

wo genau finde ich das? Ich ab dich nicht verstanden.

Gibt es einen Beispielcode o.ä.? Wie mache ich das... ?

wubdudu :!:


Christian S. - Do 19.06.08 23:58

Gib mal im Quelltext-Editor "Invoke" ein, setz den Cursor irgendwo ins Wort und drück F1. Dann bekommst Du die Doku zu dem Befehl.

In dem Fall gibt es bei WinForms zwei Versionen der Methode, einfach mal beide ansehen, welche Du brauchst. Zu beiden Versionen gibt es auch ein Quellcode-Beispiel. :-)


wubudu - Fr 20.06.08 00:22

Sorry, aber ich verstehe nicht!


Christian S. - Fr 20.06.08 00:27

Wie weit bist Du denn gekommen?


wubudu - Fr 20.06.08 00:33

user profile iconChristian S. hat folgendes geschrieben:
Wie weit bist Du denn gekommen?

Eigentlich um garnichts. Gibt es keinen Beisielcode? Muss man dazu die Methode Invoke() verwenden? Gibt es auch andere Möglichkeiten?


Christian S. - Fr 20.06.08 00:34

Sag mal, liest Du eigentlich, was man Dir schreibt? Ich habe Dir beschrieben, wie man zur Doku kommt und dass es da Beispielcode gibt. Es kann doch nicht so schwer sein "Invoke" zu tippen und F1 zu drücken ...