- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 52

Thema: Beispiel Anwendung C# Zugriff auf SerialPort

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    17
    Text = Schnittstelle.ReadLine();
    listBox1.Invoke(lbRecievedDelegate,new object[]{Text});


    hab ich nun so gelöst..wenn ichs programm ausführe
    kam zuerst ein timeout,hab ich denn rausgenommen
    nun hängt sich das programm auf und es kommt folgende meldung:

    Der E/A-Vorgang wurde wegen eines Threadendes oder einer Anwendungsanforderung abgebrochen



    oh man.. hab nur mit anderen terminal gesendet
    kommt bei mir wieder das:
    Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement Form1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.



    -.-

  2. #2
    shedepe
    Gast
    Die String Variable RecievedLine deklarierst du in der SerialPortDataRecieved Methode (Bei dir Nebenthread) Die Methode würde dann so aussehen:
    Code:
    void Nebenthread(object sender, SerialDataReceivedEventArgs e)  //Diese Methode wird ausgelöst. Wurde vorher abonniert
            {
    string RecievedLine = serialPort.ReadLine();
                lbRecieved.Invoke(lbRecievedDelegate,new object[]{RecievedLine});
                           
            }
    Bitte verwende auch absofort die Code Tags und achte ein bisschen auf die Formatierung deines Quellcodes

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    17
    aaah danke! es funktioniert !!

    ich habe nur das STRING vergessen


    DANKE

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    17
    hey..

    einfach mal eben kurz eine frage
    was spricht gegen diesen befehel=
    CheckForIllegalCrossThreadCalls = false;

    ?

  5. #5
    shedepe
    Gast
    In welchem Zusammenhang willst du den verwenden ?

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    17
    um den threadübergreifenden fehler zu umgehen. würde wunderbar klappen
    man benötigt kein invoke oder delegate...

    denn ich will die daten die ich empfange auch weiter verarbeiten.. muss ich doch wieder alles mit delegate machen usw ?!

  7. #7
    shedepe
    Gast
    Die Datenverarbeitung kannst du auch ohne invoke machen. Den Invoke Befehl brauchst du nur für Zugriffe auf den GUI Thread. Es hat außerdem durchaus seinen Sinn dass man nicht ohne weiteres von einem anderen Thread auf den GUI Thread zugreifen kann, wie in dem dazu gehörigen Artikel der MSDN auch genannt wird:
    http://msdn.microsoft.com/de-de/libr...=vs.80%29.aspx

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    17
    Wenn ich jetzt aber eine zweite Textbox einfüge
    kommen meine gesendeten ASCII Zahlen doppelt an
    also wenn ich 12 sende zeigen beide textboxen 1212 an
    ich will aber 12 13 senden.. und die textboxTemp soll 12 anziegen und textboxLuft soll 13 anzeigen.

    und das andere ist wenn die zahlen in der textbox angezeigt sind und ich wieder zahlen sende sollen auch nur die wieder angezeigt werden, nun werden diese einfach vorne mit rangeschrieben


    }


    void InvokeLBRecieved(string Data) //Parameter stimmen mit der Deklaration des Delegaten überein
    {
    textBoxTemp.AppendText(Data);
    textBoxLuft.AppendText(Data);
    //listBox1.Items.Add(Data);
    }




    void Nebenthread(object sender, SerialDataReceivedEventArgs e) //Diese Methode wird ausgelöst. Wurde vorher abonniert
    {

    string Text = Schnittstelle.ReadExisting();
    textBoxTemp.Invoke(Textfeld, new object[] { Text });
    te

  9. #9
    shedepe
    Gast
    Sorry auch wenn das jetzt etwas hart klingen mag. Kauf dir ein gutes Grundlagenbuch zu C# und arbeit das durch. Wenn du dir anschaust was die Methode InvokeLBRecieved(string Data) macht, sollte dir ziemlich schnell klar werden warum beide Textboxen das gleiche anzeigen. Außerdem würde ich dir empfehlen statt einer TextBox eine Listbox zur Datendarstellung in dem Fall zu verwenden

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    17
    ja.........

    mit der doppelten anzeige habs ich schon hinbekommen
    ich erlese mir alles aus dem internet. ist kein leichtes! .. bin seit 3 wochen dabei

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. SerialPort & Visual Studio 2008
    Von fat tony im Forum Software, Algorithmen und KI
    Antworten: 31
    Letzter Beitrag: 09.01.2012, 14:26
  2. Warum bremst SerialPort mein Programm aus?
    Von exaware im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 12
    Letzter Beitrag: 29.01.2010, 22:27
  3. Von String to Hex SerialPort
    Von !*sascha*! im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 04.03.2009, 16:52
  4. Einzelne Leitungen des Serialport steuern
    Von wollez im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 18.02.2005, 20:06
  5. Welche Programmiersprache für SerialPort und Multimedia?
    Von tfranz im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 31.08.2004, 13:25

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress