// This is called when new data is recieved in RS232 private void serial_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { del = new delSerialMsg(this.recieveCANMessage); this.BeginInvoke(del, new object[] { serial.ReadExisting() }); // push the data do main thread }