Avatar billede Syska Mester
25. september 2005 - 14:50 Der er 1 løsning

SerialPort og Cross Thread

Hej Exp'er

Jeg har en MDI form, hvor der også bruges en SerialPort class, der kommer så noget input fra porten, som bliver valideret, og derefter skal den åbne et vindue i min MDI, men det går galt...

Som jeg kan forstå det er det SerialPort class' skyld, og jeg skal bruge noget Invoke/PInvoke, Event, Delegates ting, men hvordan hulen laves det lige... har ingen ide.....

Indtil videre ser min kode sådan her ud i min DataReceivedEvent:
private void mySerialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    string output;
   
    if(StaticClass.ParseSerialInput(mySerialPort.ReadLine(), out output))
    {
        PatientInfoForm myForm = new PatientInfoForm(output, userInfo.PersonId);
        myForm.MdiParent = this;
        myForm.Show();
    }
}

Hvordan skal det laves?
Det er selvf lavet i .NET 2.0 da jeg bruger SerialPort class'n

input, kode, links, etc. er alt velkommen, er ved at gå amok er sådan en træls problem.....

Skal lige siges at formen virker fint hvis jeg laver en knap, og trykker på den, men den virker ikke fra min serial port... har også prøvet at lave en Event, som så skulle åbne den, samme problem som når det hele står i min DataReceivedEvent...

help...

best regards
mig
Avatar billede Syska Mester
25. september 2005 - 15:44 #1
private void mySerialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            string output;
           
            if(StaticClass.ParseSerialInput(mySerialPort.ReadLine(), out output))
            {
                windowOpenCPR = output;
                this.Invoke(new SerialOpenForm(OpenWindow));
            }
        }

        public delegate void SerialOpenForm();

        public void OpenWindow()
        {
            PatientInfoForm myForm = new PatientInfoForm(this.windowOpenCPR, this.userInfo.PersonId);
            myForm.MdiParent = this;
            myForm.Show();
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester