|
发表于 2008-8-26 16:38:05
|
显示全部楼层
指出一下楼主程序的问题:
1、
整个程序没有异常处理,当出现异常时,立即奔溃。
2、
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string read = serialPort.ReadExisting();
textBoxRec.Text += read;
}
这段代码中的textBoxRec.Text += read;这种做法是不安全的,应为他们俩不是一个线程的上的,调试的时候会抛出异样D,一试便知。正确的做法因该是使用委托事件。
解决方案:
public delegate void myDelegate();
public void refe()
{
string read = serialPort.ReadExisting();
textBoxRec.Text += read;
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
BeginInvoke(new myDelegate(refe));
} |
|