我用了三个线程:一个是主界面,一个是串口数据监视,另外一个不断向串口发送数据并等待下位机返回数据(死循环发送命令字,等待数据返回,再发送命令字)
在2000下,程序前台运行不到读到的串口数据1秒刷新一次,后台运行则2秒多刷新一次,而98下前台运行却6秒刷新一次,这样低的采集速度导致软件基本用不了,但98下后台运行(当前窗体失去焦点)却跟不到一秒刷新一次!
问题出在哪里???
该死的98,我服了you
在2000下,程序前台运行不到读到的串口数据1秒刷新一次,后台运行则2秒多刷新一次,而98下前台运行却6秒刷新一次,这样低的采集速度导致软件基本用不了,但98下后台运行(当前窗体失去焦点)却跟不到一秒刷新一次!
问题出在哪里???
该死的98,我服了you
2、在2k下,你cpu占有率不是100%,本程序和其他程序运行都正常。
“死循环发送命令字,等待数据返回,再发送命令字”是这样的:
线程发命令祯给下位机,之后等待,如果10秒内有完整的返回祯,则继续发下一个命令,否则提示超时……如此不断循环
注意到它们的不相之处。
你可以试者用线程重新在作一次。
不会是那种while(1)吧?
若真的是, 在循环里加个Sleep(100);就好了。不过最好是改为真正的事件CEVENT之类的同步。
全局标志变量没有同步保护,因为用不着。