我是要远程控制一些仪器进行循环监测我的一些信号,循环监测我用的settimer,现在的问题是我关闭程序的时候onclose执行完后竟然程序跑到ontimer函数的一个仪器监测函数里面但是在这里报错,错误是内存地址违规访问,是不是跟仪器有关系,但是问题是我在onclose里面把所有的仪器都close了一下,请大侠们指点一下,还有现在考虑是否不用ontimer改为线程循环监测比较好呢?

解决方案 »

  1.   

    在onclose 中巴Timeer定时器杀了--killtimer();,原因可能是你关闭时把timer的响应函数销毁了,这个时候再响应timer就会出错
      

  2.   

    我一进onclose就killtimer了,还有我觉得onclose了进不会在响应ontimer了吧,还有如果我只是进行一次timer测试完整个流程后在关闭就不会有这个问题,
      

  3.   

    可能是次序问题?
    先killtimer, 后做仪器close.
      

  4.   

    OnClose中先KillTimer。如果还有问题,就定义一个开关变量,用此变量来控制OnTimer是否执行。