我也来谈谈C#串口关闭问题
串口关不了也困扰我很久了,后来终于解决了。用串口调试助手间隔1毫秒发500的数据也能正常退出,串口调试助手都死掉了我的程序居然没事。下面把关键代码列出来与大家分享。(但是不能白学,有高薪的职位记得推荐我哦。呵呵) CommPort cp = new CommPort(); bool Closing = false; //用委托处理串口数据 void cp_eventReceiveComStr(byte[] sb) { if (Closing) { //准备退出时不再处理 return; } deleProcessCom dpc = new deleProcessCom(processCom); this.Invoke(dpc, sb); } delegate void deleProcessCom(byte[] sb); void processCom(byte[] sb) { //处理串口数据 ........ } //退出 Timer tClose = null; void ec_EventToExit() { Closing = true; //1秒后再关闭串口 tClose = new Timer(); tClose.Interval = 1000; tClose.Tick += new EventHandler(tClose_Tick); tClose.Enabled = true; } void tClose_Tick(object sender, EventArgs e) { tClose.Enabled = false; cp.Close(); cp = null; }
浙公网安备 33010602011771号