多线程时使用“Invoke”或“BeginInvoke”时遇到问题。
我有一个串行端口的DataReceived事件,我正在从它写入一个标签,它完全有效,但当我打开另外2个相同的表单时,invoke方法发送到错误的表单。
if (this.rpmLbl.InvokeRequired)
{
this.rpmLbl.BeginInvoke(this.myDelegates[1], new Object[] { val.ToString() });
}
按下按钮时,每个表单的datareceived处理程序启动:
RTAutoAppObj.comPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandlerChart);
知道它可能导致错误的表单调用吗?