问题描述
问题描述:我在开发winform的串口收发程序中,发送串口指令的部分指令发送的事件间隔不准,一开始以为是在线程中做这个线程间时间片的分配问题,所以改成form的定时器,发现问题仍然存在。不求非常精确,只求能做到同样事件间隔看起来没有什么差别。
解决方案
解决方案二:
form的定时器是不太准的,用System.Threading.Timer,不过注意这个定时器是多线程的
解决方案三:
一些不应该在主线程操作的费时操作,从主线程中去掉,那么你的串口操作间隔就可以“非常准”的。因为主线程被垃圾代码占用了,没办法准。
解决方案四:
引用2楼sp1234的回复:
一些不应该在主线程操作的费时操作,从主线程中去掉,那么你的串口操作间隔就可以“非常准”的。因为主线程被垃圾代码占用了,没办法准。
我的主线程只接受串口数据,而且DataReceived事件也是在辅助线程上引发的,另外我用串口的数据在我自己建的线程上采用委托的方法在界面上画图。除了这些,其余的都是在子线程做的。
解决方案五:
把时间定短一点,多长查询时间看看
时间: 2024-09-13 19:47:25