写数据,直接就写就行了。 在 .net 框架中实现的端口写操作函数,都能安全地在子线程中写数据。你所谓的“进行写操作的时候就报异常了”应该是你的代码由于滥用线程死循环,所以额外地复杂了混乱了一些所谓的控制代码,才出现的异常。原本没有死循环、没有阻塞的异步代码,非常简洁清晰,也不会有这个多问题。这就好像是一堆没有任何学车训练的人胡乱地驾车冲上高速路,把路堵死了,而且事故频出。
[quote=引用 楼主 Tidal_Choidi 的回复:] 写了一个程序,其中的一个线程A一直读串口的数据,将串口设备上的数据显示在界面上。 其中还有两个线程B,C,是对连接到串口上的设备进行读写操作。因为A线程一直在对串口进行读操作,当B或者C再对串口进行写操作的时候就报异常了,请问,类似这样的多线程对同一个串口的操作有什么好的办法? 我上面的思路不清楚有没有问题?
什么叫做“A线程一直对串口进行读操作”? 线程操作只需要几毫秒,异步的。搞一些同步死循环阻塞语句来滥用线程,不死掉才怪。
多个线程针对一个串口的读写操作?这根本就是错误的设计 必然出现不可调和的矛盾!
写了一个程序,其中的一个线程A一直读串口的数据,将串口设备上的数据显示在界面上。 其中还有两个线程B,C,是对连接到串口上的设备进行读写操作。因为A线程一直在对串口进行读操作,当B或者C再对串口进行写操作的时候就报异常了,请问,类似这样的多线程对同一个串口的操作有什么好的办法? 我上面的思路不清楚有没有问题?
110,536
社区成员
642,578
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧