多线程操作多个串口出现有关问题(只有一个串口有效)

多线程操作多个串口出现问题(只有一个串口有效)
机器有4个串口(本身有2个,再加2个USB转的)

程序开启四个线程,一个线程对应一个串口,,每个线程的操作内容都是一样的。

问题是:

每次都只有一个线程能够返回数据,并且是最先建立的那个线程。。

是否是计算机上的串口只能同时用一个???有啥解决办法

PS:如果不用线程,一个一个串口顺序操作过来,没有任何问题。。
------解决方案--------------------
"每个串口对应一条独立总线"是啥意思?你的线程里面怎么操作的?
是不是你用的控件只支持一个串口的?同时操作多个串口是没问题的。
------解决方案--------------------
引用楼主 huboy 的帖子:
机器有4个串口(本身有2个,再加2个USB转的) 

程序开启四个线程,一个线程对应一个串口,,每个线程的操作内容都是一样的。 

问题是: 

每次都只有一个线程能够返回数据,并且是最先建立的那个线程。。 

是否是计算机上的串口只能同时用一个???有啥解决办法 

PS:如果不用线程,一个一个串口顺序操作过来,没有任何问题。。

电脑可用的串口都可以用的,不论多少个
------解决方案--------------------
解决办法:每个线程要开启临界区,结束时才退出临界区
------解决方案--------------------
引用楼主 huboy 的帖子:
机器有4个串口(本身有2个,再加2个USB转的) 

程序开启四个线程,一个线程对应一个串口,,每个线程的操作内容都是一样的。 

问题是: 

每次都只有一个线程能够返回数据,并且是最先建立的那个线程。。 

是否是计算机上的串口只能同时用一个???有啥解决办法 

PS:如果不用线程,一个一个串口顺序操作过来,没有任何问题。。


肯定没关系的.我们用过176个串口,11台串口服务器.
应该是线程没有建立好,加入SLEEP试试看.
另外每个线程再建立自己的串口缓冲区,应该没有问题的
可能用的串口控件有关系,我们用的是CPORT3.1
------解决方案--------------------



  問題解決了,我來接點分。呵呵