直到我需要发送数据时才打开,并立即关闭.我得到随机的"访问端口"错误(虽然我在使用它后总是关闭端口),所以我想也许可以让它始终打开.
什么是正确的使用方法,假设每一分钟或两分钟我需要在某些COM端口发送数据?
谢谢..
Han*_*ant 10
经常调用SerialPort.Close()是一个错误.让另一个应用程序偷走远离你的端口并不是非常理想.但是问题更多,而你遇到的问题是,Close()不会等待由SerialPort启动的工作线程退出.该工作线程引发DataReceived,PinChanged和ErrorReceived事件.退出需要"一段时间",可能在几毫秒到几秒之间.再次调用Open()将失败,直到完成.
这是该类中的一个缺陷,但是由串行端口的常见用法引起.在应用终止之前,应用通常不会关闭它们.包括never,避免常见的死锁情况.请注意,关闭的MSDN文章警告:
任何应用程序的最佳实践是在尝试调用Open方法之前等待一段时间后再调用Close方法,因为端口可能不会立即关闭.
| 归档时间: |
|
| 查看次数: |
6263 次 |
| 最近记录: |