微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景

LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景

时间:11-13 来源:3721RD 点击:

图4-8 所示。从提示内容可以看出,此错误为"NON-FATAL RUN-TIME ERROR",即非致命运行时错误,并给出错误线程ID。由于异步定时器与用户界面逻辑分布在不同的线程中,会造成主函数main 中的DiscardPanel 已经执行完毕,panelHandle 句柄已经释放,但异步定时器可能只运行了一半,由于异步定时器的特殊性决定了其必须运行完毕才能暂停或终止,因此,错误提示中会出现句柄无效的情况。简单的做法是在timer 回调函数的首行添加DisableBreakOnLibraryErrors 函数,禁止错误对话框弹出。如果想根除错误,需要在面板回调函数PanelCB 首先停止异步定时器并等待其执行完毕,即延时一定时间,如一个Interval 来使另一个线程中的timer 函数执行完毕并成功返回。

由于采用多线程技术,同时跟踪多个并发线程是非常必要的。LabWindows/CVI 提供了线程窗口可随时获得每个线程的详细执行信息。在调试状态下,选择LabWindows/CVI 8.5 下的菜单Run→Threads… (或选择LabWindows/CVI 9.0 下的菜单Window→Threads),弹出线程对话框,

如图4-9 所示。在对话框中显示每个线程ID 以及当前执行的函数,选中要查看的线程后,点击"View"按钮,可定位到当前运行的线程。在菜单Run 下,还可以通过Up Call Stack 、Down Call Stack 以及Call Trace… 菜单查询当前线程信息。

图4-8 运行时错误对话框

图4-9 LabWindows/CVI 8.5 线程对话框

(4)运行效果图

点击工具栏中的Debug Project 按钮,程序开始运行,其效果如图4-10 所示。

4-10 运行效果图

相关阅读

《虚拟仪器技术,将"软件就是仪器"进行到底!》

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top