有一方法,里面是从芯片中读取数据的,我希望每隔一秒就执行一次。 TIMER的话会使应用程序很卡,点其他按钮都要停顿好一段时间。 请教有没有别的方法可实现此功能。

解决方案 »

  1.   

    try to using system.threading.timer or system.timers.timer
      

  2.   

    外面用个循环读取,然后里面可以执行完一次就休眠一秒,然后再继续执行。
    using System.Threading;
    Thread.Sleep(1000);
      

  3.   

    控件栏里的Timer是基于windows消息机制的,而界面的运作正是依靠windows消息机制。你的IO频繁而费时,因此影响了界面运作。首先试下system.threading.timer 或 system.timers.timer。MSDN上称这两种定时器是基于线程技术。所以从理论上进不会影响到界面运作。不过必需记往一点:在定时器函数中调用界面上控件方法,一定要通过Invoke或BeginInvoke。
      

  4.   

    这个应该不错,用线程的话时间不会很准,尤其是CPU使用率很高的时候。
      

  5.   

    线程操作new Thread((ThradStart)delegate
    {
        this.Invoke((EventHandler)delegate
                   {
                   });
    }).Start();