我的代码如下:
public partial class Form4 : Form
{
SerialPort m_Ports;
private Thread myThread;
public Form4()
{
InitializeComponent();
} private void Form4_Load(object sender, EventArgs e)
{ m_Ports = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
if (!m_Ports.IsOpen)
{
m_Ports.Open();
}
m_Ports.DataReceived += new SerialDataReceivedEventHandler(recevieMessage);
} private void button1_Click(object sender, EventArgs e)
{
m_Ports.Write(send.Text);
} private void button2_Click(object sender, EventArgs e)
{
m_Ports.Close();
this.Close();
}
public void recevieMessage(Object sender,SerialDataReceivedEventArgs e)
{
receive.Text =m_Ports.ReadExisting ().ToString ();
// MessageBox.Show=(m_Ports.ReadExisting ().ToString ()); }当程序执行到:receive.Text =m_Ports.ReadExisting ().ToString ();处会提示错误如下:
线程间操作无效: 从不是创建控件“receive”的线程访问它。
解决就给分:
http://blog.csdn.net/knight94/archive/2006/03/16/626584.aspx
CheckForIllegalCrossThreadCalls=false;
参看:
http://msdn2.microsoft.com/zh-cn/library/ms171728.aspx