mikrocontroller.net

Forum: PC-Programmierung Control.Invoke ??


Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Es ist wirklich zum verzweifeln.

Habe mir ein Terminalprogramm zum Senden und Empfangen von Daten über
die Serielle Schnittstelle geschrieben.

Werkzeuge:   Mikrosoft Visual Studio
             Programmiersprache C#

Geschrieben für Windows Mobile 5.0

Fall A:

1. Ein Zeichen gesendet PC -> PDA. Betätige den "receive" Button
   auf PDA.
--> In der textBox wird das empfangene Zeichen ausgegeben.

2. Ein Zeichen gesendet PDA -> PC. Betätige den "receive" Button
   auf PC.
--> In der textBox wird das empfangene Zeichen ausgegeben.

Soweit alles in Ordnung.


Da ich mir das Drücken von dem "receive" Button sparen möchte,
habe ich den Event Handler der Seriellen Schnittstelle eingebunden.

Fall B:

1. Ein Zeichen gesendet PC -> PDA.
   Auf PDA.
--> Fehlermeldung: "Control.Invoke muß für die Interaktion mit
                    Steuerelementen verwendet werden, die in einem
                    eigenen Thread erstellt wurden."

2. Ein Zeichen gesendet PDA -> PC.
   Auf PC.
--> In der textBox wird das empfangene Zeichen ausgegeben.

Da verstehe ich die Welt nicht mehr. Wieso läuft das gleiche
Progrämmchen auf dem PC unter Windows XP aber unter
Windows Mobile 5.0 läuft es in Fall B.1 nicht.

Bin unter C# blutiger Anfänger und weiß nicht was ich unter
Control.Invoke verstehen soll.

Für jeden Tipp dankbar.
Gruß
Dieter

Autor: MNR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich sollte das auch unter XP nicht funktionieren. Der Zugriff auf
Controls ist nicht Threadsafe. Wenn du dir die Hilfe zu dem Fehler
anschaust, findest du auch Lösungsmöglichkeiten. Für einen schnellen
Test kannst du ja mal "CheckForIllegalCrossThreadCalls = false;" in
deiner Form ausprobieren.

Gruß,
Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.