串口阻塞读写的局限性
跟着阿笨一起玩NET
2021-10-24 13:31
在阻塞读时,写串口需要不定长的时间(有时零点几秒,有时几秒),估计原因是串口的读和写不能同时进行。
经跟踪测试,有以下结论:
在某线程阻塞读串口时串口资源完全被占用,此时在另一线程中进行写操作也将阻塞(原因:使用同一资源,ReadFile/WriteFile在操作系统底层进行同步锁定),直到读操作因为超时返回,才能进行其它的串口操作,如串口写操作。
评论
2021-10-24 13:31
在阻塞读时,写串口需要不定长的时间(有时零点几秒,有时几秒),估计原因是串口的读和写不能同时进行。
经跟踪测试,有以下结论:
在某线程阻塞读串口时串口资源完全被占用,此时在另一线程中进行写操作也将阻塞(原因:使用同一资源,ReadFile/WriteFile在操作系统底层进行同步锁定),直到读操作因为超时返回,才能进行其它的串口操作,如串口写操作。