我正在尝试使用.net sample
写入COM端口写入真正的COM没有问题,但是当我尝试写入虚拟COM时,我会收到超时异常
未处理的异常:System.TimeoutException:写入超时。 在System.IO.Ports.SerialStream.Write(Byte []数组,Int32偏移量,Int32计数 ,Int32超时) 在System.IO.Ports.SerialPort.Write(String text) 在System.IO.Ports.SerialPort.WriteLine(String text)
我用Google搜索了问题,找到了this。根据所说的那就是问题:
.net的write()函数正在使用CreateFile和WriteFile Async,如下所示:
CreateFile("\\\\.\\" + portName,
NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE,
0, // comm devices must be opened w/exclusive-access
IntPtr.Zero, // no security attributes
UnsafeNativeMethods.OPEN_EXISTING, // comm devices must use OPEN_EXISTING
FILE_FLAG_OVERLAPPED,
IntPtr.Zero // hTemplate must be NULL for comm devices
);
WriteFile(_handle, p + offset, count, IntPtr.Zero, overlapped);
当我使用那些我有NULL而不是FILE_FLAG_OVERLAPPE
时我的问题是,我该如何克服这个问题?我必须编写自己的代码吗?