C#串口无故被关闭ThreadExceptionEventArgs
程序从二次表上取重量数据,并将串口接收到的数据都显示到richtextbox中。但有时这些数据就自动不再更新了。查看异常日志发现
2012-07-20 12:03:38发生系统异常。
ThreadExceptionEventArgs
由于线程退出或应用程序请求,已放弃 I/O 操作。
at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
at System.IO.Ports.SerialStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at System.IO.Ports.SerialPort.Dispose(Boolean disposing)
at System.IO.Ports.SerialPort.Close()
at GatherWeight.FrmGather.FrmGather_FormClosing(Object sender, FormClosingEventArgs e)
at System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2012-07-20 12:03:38发生系统异常。
System.ObjectDisposedException: Safe handle has been closed
at Microsoft.Win32.UnsafeNativeMethods.WaitCommEvent(SafeFileHandle hFile, Int32& lpEvtMask, NativeOverlapped* lpOverlapped)
at System.IO.Ports.SerialStream.EventLoopRunner.WaitForCommEvent()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
有这两个异常信息。但是以前程序一直运行正常的,怎么今天突然会出现这种情况呢?和二次表的连接线是正常的。今天发生过好几次这种异常了。串口自动关闭。。。
也许和硬件有关系啊,这个你还是仔细跟跟吧,加一些错误输出
如果以前是好的,只有添加了一张串口扩展卡,而且卡上接了另外一个设备后才出的问题,那最有可能是卡的问题,当然另外一台外设也值得怀疑,最后,应该怀疑你的程序了,写的兼容性不够,换一个环境就出问题。
用排除法,先把另外的外设拔掉再试,确认外设没影响,有卡的驱动可以更新一下,有条件的话换一张卡试试看,装一个串口测试软件来接收数据,确认一下所有硬件工作是否正常。
send_buff数组没有返回数据