繁体   English   中英

非重叠的串行端口连接是否会在读取期间阻止写入(反之亦然)?

[英]Does a non-overlapped Serial Port connection block a write during read (and vice versa)?

当使用CreateFile打开串行端口连接时(在Windows平台上为C ++),您可以选择以重叠或不重叠方式打开它。

如果以不重叠的形式打开,则ReadFile或WriteFile调用被阻止,即,直到准备好它才返回。

我的问题是,这些函数调用在单独的线程中执行时是否彼此阻塞。 如果一个线程执行ReadFile,在所有读取完成之前,另一个线程将能够执行WriteFile吗?

是的,他们有。 从MSDN:

“如果一个线程被阻塞以等待其I / O操作完成,则随后调用通信API的所有其他线程将被阻塞,直到原始操作完成为止。例如,如果一个线程正在等待ReadFile函数返回,则任何线程发出WriteFile函数的其他线程将被阻止。”

http://msdn.microsoft.com/zh-cn/library/ff802693.aspx#serial_topic4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM