读书人

主线程与子线程解决思路

发布时间: 2012-03-03 15:33:03 作者: rapoo

主线程与子线程
我要的效果是: 点击一个按钮然后以9600的波特率发送三个指令,发送完后把波特率设置为38400进行后面的通信。

这个串口通信我用的是一个类(CSerialPort),这个类在创建了对象进行发送数据时它是自己起了一个线程。

我得大致用法如下:
object.setbaud( 9600 );
object.send( "command1 " );
object.send( "command2 " );
object.send( "command3 " );
object.setbaud( 38400 );

但是在实际应用时如果直接这样用的实际执行结果是如下的:
object.setbaud( 9600 );
object.setbaud( 38400 );
object.send( "command1 " );
object.send( "command2 " );
object.send( "command3 " );
如果在每一个操作时加一个sleep(10)基本上就能解决问题。但是对于不同的机器执行效果也不一样。
在我的机子上执行正常,但是在别人的机子上大部分的执行结果如下:
object.setbaud( 9600 );
Sleep( 10 );
object.send( "command1 " );
Sleep( 10 );
object.send( "command2 " );
Sleep( 10 );
object.setbaud( 38400 );
Sleep( 10 );
object.send( "command3 " );
Sleep( 10 );
最后程序肯定是在各种各样的机子上使用的,我想有没有能够肯定按照上面的顺序执行的方法。

谢谢!!




[解决办法]
发送地方了哦。

读书人网 >C++

热点推荐