我想做一个这样的程序,就是我在运行程序里想做一个过程,每秒要不断的调用这个过程,来检测我远程设备的开关状态,现在我用定时器每秒运行一次,但感觉程序有点卡,请问用什么方法可以不卡呢,是要用多线程吗?

解决方案 »

  1.   

    线程是最好的解决方案
    如果用定时器,检测过程中写:Application.ProcessMessage 
      

  2.   

    如果要求等待的话,即不要求要等某个控件过程或组件过程执行完的话,可以考虑TIMER+API线程(每秒CreateThread)
      

  3.   

    因为要时时检测远程设备的运行状态,所以要这样运行。其实过程就一个循环,不大,就是发送一个指令和马上接受一个指令,通过接受到的指令来判断。也就是检测MOXA的8个DI的状态。
      

  4.   

    专门开一个线程来做这个工作是最好的解决办法。
    SetTimer()也比定时器好
    WaitForSingleObject()也行
    百度一下用法,很多的