Hmm, det er lidt tricky, men kan godt lade sig gøre. Jeg bruger min mainform til at sende data over com porten, men når der så kommer data ind igen, bliver det modtaget i Seriel() og der vil jeg gerne have et kald til main, for at behandle dataen.
public partial class MainForm : Form { Seriel seriel = new Seriel();
public MainForm() { seriel.DataHandler += new EventHandler(DataHandler); }
private void DataHandler(object sender, EventArgs e) { if (this.InvokeRequired) { this.Invoke(new SetDataCallback(DataHandler), new object[] { sender, e }); } else { // Do Something SerielComm Package = (SerielComm)sender; /* Typecast af sender, som er det data vi sender med */ } } }
I Din serielle klasse skal der så være en eventfunktion.
class Seriel {
public EventHandler DataHandler = null; // En pointer til vores handler
Jeg håber det kunne hjælpe lidt, Dette eksempel vil måske ikke lige compile, da jeg kun har lavet et udpluk af min kode. Hvis du ikke kan få det til at virke, skal du være velkommen til at skrive til L[a]rslennon.dk, så skal jeg nok hjælpe dig med et bedre eksempel, eller med din egen kode.
Ja minForm.Invoke brurger jeg også når jeg arbejder med forms, men dette er ikke en form men istedet en almindelig klasse.
Ellers tak for feedback
Grunder til at jeg vil have flyttet event over på den anden tråd er forbi min klasse skal registreres til COM og køres fra en ActiveX container, og der i den forbindelse at jeg ikke er sikker på om event's fra andre tråde vil skabe problemer ifm. COM
Synes godt om
Ny brugerNybegynder
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.