如何避免在串口通信过程中由于串口通信中断而造成的线程锁死?
public void CDL_Command_Send(string Send_Code)
{
if (Command_comm.IsOpen == true)
{
string resetcode = Send_Code;
string pattern = @"[/da-f]{2}|\d{2}|[/da-f]{1}\d{1}|\d{1}[/da-f]{1}|[/dA-F]{2}|\d{2}|[/dA-F]{1}\d{1}|\d{1}[/dA-F]{1}";
MatchCollection mc = Regex.Matches(resetcode, pattern);//采用正则得到有效的十六进制数
List<byte> buf = new List<byte>();//填充到这个临时列表中
foreach (Match m in mc)
{
buf.Add(byte.Parse(m.Value, System.Globalization.NumberStyles.HexNumber));
}
Command_comm.Write(buf.ToArray(), 0, buf.Count); //转换列表为数组后发送
}
else
{
MessageBox.Show("请打开指令串口之后再进行数据发送,错误代码:CDL0x000101");
}
}
如上的代码,(我是100ms定时发送数据),一旦在串口通信过程中,突然拔掉串口线或者硬件通信中断,这时候程序就一直死在红色那行中,请问如何避免??