请问MFC上位机程序,50个仪表,1个控制台(升源降源),采用多线程怎么对仪表进行检测

请教MFC上位机程序,50个仪表,1个控制台(升源降源),采用多线程如何对仪表进行检测?
50个仪表放到控制台上,只有一个控制台。要做一个自动的MFC上位机程序,点一下按键,一直跑到完。软件能够自动的使控制台升源降源,然后与仪表通信,进行仪表的检测。控制台是一对多的,也就是50个仪表只能用一个控制台。这涉及到同步问题。下一步的检测只能是等待这一步所有仪表都检测完毕,才进行下一步(只能如此)。通信及控制台的控制、测试等不是问题。关键是能否用多线程,同时启动50个线程并发检测。

之前的做法是采用定时器的方式。设定全局变量timerno,timerno随定时器累加。每个timerno固定做特定的操作(即与仪表进行通信)。这样就能保证50个仪表是一致的。

这种方法的问题是,仪表是从设备,通信时有应答。应答的快慢不一致。所以只能按照最慢的应答时间等待,才能保证不超时。这样比较费时。比如有49个都是

在100ms应答,而有1个是在1000ms时应答。则必须用1000ms做最大等待时间。

现在想改成线程方式,即每个仪表收到应答后就进行下一步操作,各干各的,这样会节省时间。但如果遇到控制台的升源降源等一致性操作的时候,必须同步等待所有仪表完成上一步才行。

请问这两个方法哪个更好,50个线程的方案是否可行,该如何做?
------解决方案--------------------
"当收到应答后" 就是一个事件.

50 个查询能不能 一起发出去(one by one), ? 
然后等 应答 ?
------解决方案--------------------
楼主 你这个 1个上位机挂50个  多半是用的总线吧,不会用50个端口吧。既然用的总线,就一次性发送所有查询吧,下位机应答回来都有地址什么的标志把,你通过地址来判断是哪个下位机返回来的数据。不知道你的总线协议和下位机是否支持判断总线忙活着空闲,然后占用总线等一系列协议。

你开线程也可以,如果你是多个端口的话 当然可以用多个线程,但是不要开太多,比如你要查询50个,你可以开10个线程 每个线程查询5个,但是这个都是基于你有多个端口的情况下的,如果你是总线,那么和下位机通信的只有1个端口,你就只有开一个线程。去发送接收, 你发送完了等待接收 用类似waitforsingleobject这种去等待即可,如果那边接收完了 就给信号让等待结束,马上就可以继续发  

楼主还是说下接口环境,通信环境 才方便讨论问题