String aus einem anderen Thread in ein Formular einsetzen

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Famore.

    @Famore Was willst Du denn erreichen?
    Soll immer zu einem von mehreren gesendeten Befehl unmittelbar eine Antwort abgeholt werden
    oder
    sendest Du einen Befehl und es ist Dir im dann Prinzip egal, wann die Antwort kommt?
    Wie sehen Protokoll und Timing aus?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Es soll schon unmittelbar nach dem Senden eines Befehls unmittelbar eine Antwort abgeholt werden. Nun kann es vorkommen, dass das angeschlossene Steuergerät aus irgendwelchen Gründen nicht antwortet. Das möchte ich dem Benutzer, mit einer "Time Out" Message, dann mitteilen. Desweiteren könnte ich in der Function SendCommandWait4Answer in Zeile 19 und 21 den Schleifenzähler entfallen lassen. Die MessageBox in Zeile 23 habe ich nur für mich zu Debug- Zwecken eingesetzt, diese wird anschließend gelöscht. Statt einem Schleifenzähler könnte ich auch mit „DateDiff“ den Schleifen Austritt hinbekommen, falls im Empfangsbuffer keine 6 Bytes empfangen wurden. Wenn es die Möglichkeit gibt, es mit der TimeoutException abzufangen, fände ich es schöner.
    @Famore SendCommandWait4Answer solltest Du anders aufbauen:

    Quellcode

    1. Senden
    2. Sleep()
    3. Antwort holen
    Die Dauer des Sleep sollte etwas länger sein als die "normale" Antwort-Dauer.
    Wenn dann keine Antwort da ist, liegt ein Timeout vor.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!