如题 我在该类下声明了一个timer控件并且在构造函数中初始化 设置了间隔时间还有触发事件 并且enable了 但是触发事件加断点后没有反应呢 

解决方案 »

  1.   

    顺便想想问一下 SerialPort.write 事件有延时吗 是否会马上发送出去数据 毫秒级别的延时对我影响也很大的说
      

  2.   

    使用 System.Timers.Timer 看看.
      

  3.   

    从MSDN查询该方法的说明:当您想将字符串作为串行端口输出写入时,请使用此方法。如果输出缓冲区中的字节数太多,并且 Handshake 设置为 XOnXOff,则 SerialPort 对象可能会在等待设备准备接受更多数据的过程中引发 TimeoutException。我估计该方法不会马上将数据送到设备。
      

  4.   

    你可以用Tread.Timer这个对象。 
      

  5.   

    timer.start()了 不进事件呢 纳闷
      

  6.   

    window.form.timer
    把你要执行的方法写在time.tick方法里
      

  7.   

    无Windows窗体不能使用System.Windows.Forms.Timer,改用System.Timers.Timer或System.Threading.Timer类...
      

  8.   

    提供了三种timer
    System.Windows.Forms.Timer
    System.Threading.Timer类 
    System.Timers.Timer类
    System.Timers.Timer t = new System.Timers.Timer(10000);
    t.Elapsed += new System.Timers.ElapsedEventHandler(method); 
    t.Enabled = true;
    public void method(object source, System.Timers.ElapsedEventArgs e) 
     { 
     } 
      

  9.   

    可以了 使用System.Timers.Timer 就可以了 谢谢
    又出现了问题 为什么 我在事件中加了Thread.sleep(2000) 现状是没有休眠2秒呢 
    而且间隔我设置的600  应该600毫秒进来 我trace了看一下 好像16毫秒就进来一次 有时候trace了两遍相同时间 就是说有时候同一时刻进去了两次呢 
      

  10.   

    差了些资料
    :基 于服务器的计时器,与UI不在同一个线程。多线程组件。Elapsed 事件在 ThreadPool 线程上引发。如果 Elapsed 事件的处理时间比 Interval 长,在另一个 ThreadPool 线程上将会再次引发此事件。因此,事件处理程序应当是可重入的。 我是在这个Elapsed 事件中向串口发送20个字节 我间隔设置时600毫秒 有时候会进来两次按上面所说说明Elapsed 事件处理时间比Interval 长。但是sleep为什么不骑作用呢
      

  11.   

    System.Timers.Timer
    enable=true 
    就进Elapsed事件啊