private void button1_Click(object sender, EventArgs e) { if (serialState == eSerialSate.SerialOff) { try { //serialPort1.WriteTimeout = 500; //serialPort1.ReadTimeout = 500; InitPort(); this.newCanvas.Scheduler.SP.Open(); serialState = eSerialSate.SerialOn; readThread = new Thread(ReadPort); readThread.Name = "read thread"; button1.Text = "关闭串口"; pictureBox1.Image = AGV.Properties.Resources.ICON_ON; readThread.Start(); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } else { try { serialState = eSerialSate.SerialOff; //readThread.Join();//等待线程结束会出现线程死掉的情况,不知道为什么 button1.Text = "打开串口"; pictureBox1.Image = AGV.Properties.Resources.ICON_OFF; if (this.newCanvas.Scheduler.SP.IsOpen) { this.newCanvas.Scheduler.SP.Close(); } if (readThread != null) { readThread.Abort(); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } }
private void button39_Click(object sender, EventArgs e)//打开串口 { if (serialState == eSerialSate.SerialOff) { try { //serialPort1.WriteTimeout = 500; //serialPort1.ReadTimeout = 500; InitPort(); serialPort1.Open(); serialState = eSerialSate.SerialOn; readThread = new Thread(ReadPort); readThread.Name = "read thread"; button39.Text = "关闭串口"; readThread.Start(); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } else { try { serialState = eSerialSate.SerialOff; //readThread.Join();//等待线程结束会出现线程死掉的情况,不知道为什么 button39.Text = "打开串口"; if (serialPort1.IsOpen) { serialPort1.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } }