我想问一下, _ReadSerialData += new ReadData(_subform1.addData);
_ReadSerialData += new ReadData(_subform2.addData);
这个是写在主窗体的什么位置?我也在纠结这个问题,谢谢你![/quote]
我觉得该在主窗体调用,每增加一个SubForm就调用一次
如果有的SubForm需要删除应该加_ReadSerialData -= new ReadData(_subform1.addData);
你接收数据使用DataReceived事件,还是直接在ui线程中read?
如果在UI主线程中等待/读取的方式,就会界面操作互相干扰,造成延迟,应该用DataReceived事件。
在主窗口中定义一个 public Queue<byte> SerialData;
收到数据后 SerialData.Enqeue(data);
可以再定义一个 public event SerialDataReceived;
收到数据后触发 SerialDataReceived();
其它子窗口可以注册这个事件,在事件处理程序中:
var data = mainForm.SerialData.Dequeue()