串口关闭问题!
foxd 2013-01-10 12:13:51 我们编写的软件要接收232串口传来的数据并实时地显示在屏幕上,退出窗体时需要关闭串口(SerialPort)。由于微软提供的SerialPort控件有Bug,直接使用SerialPort.Close(); 来关闭串口是不行的。我以前编写的小点儿的c# winform程序是使用以下的过程来关闭串口,如:
private void closeWeighPort()
{
try
{
int i = Environment.TickCount;
while (Environment.TickCount - i < 1000 && _isReceiving) Application.DoEvents();
serialPort.Close();
}
catch (Exception ex)
{
throw;
}
}
其中的_isReceiving是窗体变量,当串口接收数据时就置为true。以前这么用都没有什么问题,这回我在编写一个稍大点儿的c# winform程序时就出现有时能关闭串口有时无法关闭,造成假死的死机现象。难道以上代码不够完善?或者您是否有更为好用的关闭串口的过程代码可借我参考。谢谢了!