LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景
图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 运行效果图
相关阅读
《虚拟仪器技术,将"软件就是仪器"进行到底!》
LabWindows 虚拟仪器 CVI 动画场景 相关文章:
- 用于雷达测试和验证的自动化测试设备(05-15)
- 基于LabWindows的录波分析仪的设计(03-01)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作(11-13)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 打蜜蜂(11-13)