小弟最近使用异步调用功能,实现了一个定时器功能。大概流程是,程序中需要定时的地方,发送指定延时时长给定时器,定时器计时到了之后,返回一个指定信号。
由于程序里可能多处同时调用该定时器,因此该处计时程序必须考虑重入问题。具体框图如下,程序分为两级,下图是调用核心计时函数的程序框图
下面这个图是核心计时函数程序框图,这个核心计时函数被设置为“可重入执行”
这种编程情况下,调用这一组函数500次左右,程序明显变卡,结束程序后依然卡,必须重启labview才能消除卡顿。已经基本100%确定就是这里导致卡顿,不知道是什么东西没有清除掉。
查了很多资料,将第一图中0x80换成0x120,可以使核心计时函数以副本的形式并行运行。但是发现这种情况下使用“关闭引用函数”会将核心计时函数直接关闭,将导致程序失去功能。如果删除这个“关闭引用函数”,发现程序依然有上述的变卡问题。
小弟是在是没办法了,肯定各位大佬指点迷津,可否告诉我查哪一些资料。
还有一个解决办法,就是换用一套定时系统。各位大神能否指点如何做一个简单可靠的定时系统?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>