- 问题一:下位机反馈的数据显示不实时
解决方案:
(1)先测试上位机发送的指令包是否正确(可以用弹框或打印指令包的方式检测)
(2)在1的基础上,再检查上位机的指令包是否能下发到下位机(即网络是否畅通,下位机软件添加探针显示上位机下发的指令包)
(3)在2的基础上,再检查上位机指令是否能实时下发到下位机(实时性,检测方法同上)
(4)在3的基础上,再检查下位机反馈的指令包是否能实时回传给上位机(实时性,同上)
最后发现上位机需要连续发送多条指令给下位机,下位机才能接收到,定义的指令包格式有问题,缺少针头和针尾 - 问题二:调用线程无法访问此对象,因为另一个线程拥有该对象(因为WPF中后台线程是无法访问和修改UI层的,需要调用控件的 Invoke/BeginInvoke 方法来将代码扔回至UI线程执行)
解决方案:
this.Dispatcher.Invoke(new Action(()=>{
this.Visibility = Visibility.Visible;
}
或者
this.Invoke(new Action(() => {
this.Visibility = Visibility.Visible;
})); - 在While中调用Thread.Sleep()时界面假死
解决方案:
Application.DoEvents(); //起到实时响应的效果
Thread.Sleep(100);
项目中遇到的问题及解决方式
最新推荐文章于 2024-04-16 18:05:04 发布