我正在编写一个 C# 应用程序以通过串行与微控制器进行通信。我有几个关于如何处理收到的消息的问题。下面是我目前使用的代码,它接收到的消息非常好,但我无法更新表单,或将数据存储在此方法之外的任何地方(因为它在另一个线程中)。
com.DataReceived += new SerialDataReceivedEventHandler(OnReceived);
public void OnReceived(object sender, SerialDataReceivedEventArgs c) // This is started in another thread...
{
com.DiscardOutBuffer();
try
{
test = com.ReadExisting();
MessageBox.Show(test);
}
catch (Exception exc)
{
MessageBox.Show(exc.ToString());
}
}
当我尝试更改表单或从此处调用另一个方法时,这是我收到的错误消息:“Cross Thead 操作无效”。
我希望能够在其他地方显示信息,或者甚至更好地将其放入数组中,以便以后存储为文件。有什么办法可以做到这一点吗?
再次感谢!