[英]Non-Overlapped Serial - Do ReadFile() calls from separate threads block each other?
[英]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.