当前位置:编程学习 > C#/ASP.NET >>

VB.net代码执行效率的问题

是这样的,在我的代码里,开了一个timer,定时50ms(我知道50ms是不怎么准的,但是由于项目本身的需要,先就定时50ms)

然后有一段代码是循环被调用的。

我和下位机做串口通信,发数据包,收到下位机的应答后,就发送下一包数据。直到发完全部数据,数据包的长度是固定的(128byte)。

我的问题是,每次 从我收到下位机的应答,到我开始发送下一包数据的时间是不一样的。

这个时间是个绝对时间,不依赖于下位机的应答,这段代码是纯粹上位机的逻辑判断,数据赋值等,在包与包之间肯定是跑的相同的代码逻辑。

但是不知为何,这个时间就是不准,有时4ms,有时6ms,有时18ms。

这个是什么原因,我的主程序被什么东西中断了吗?被那个该死的timer?

if (rcv_ack) then

//从这里开始计时
for(i=0 to 128) then
   data_trans(i) = ap_buf(i+ap_package_index*128)
next
//从这里结束计时
_rs_232.send(data_trans)


标记的那段代码执行时间总是不一样,一样的机器,有长有短。什么原因? --------------------编程问答-------------------- 定时器不能精确定时小于50毫秒的场景。如果你非要这么做,那就得用GetTickCount()+死循环了。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
定时器不能精确定时小于50毫秒的场景。如果你非要这么做,那就得用GetTickCount()+死循环了。


我知道小于50ms的定时器不准,我的问题是,这个不准的timer是不知导致相同逻辑,相同行数的代码,执行时间上的不确定? --------------------编程问答-------------------- 相同逻辑,相同行数的代码,执行时间为嘛一定要一样捏…………如果考虑环境的波动,绝大多数情况都不一样吧……极少能碰见一样的。。。何必纠结这个事情
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,