当前位置:编程学习 > C#/ASP.NET >>

窗体中的timer start后在一个触发事件中stop,然后再start,timer.tick事件就不执行了。

如题,我要写一个程序是,依次发送地址数据帧,返回该地址的数据内容。当超时5s未收到返回时,将重发该地址。
如 发送0x00,返回0x01,再发送0x01,返回0x02,依次往后,发送0x09,返回0x0A。
若中间发送如0x05,5s后仍无返回数据的话,则重发0x05。

现有函数DataSend(Add)负责发送,DataReceived()是个触发函数,负责接收返回数据。
先在窗体中拉一个timer组件,new 一个timer1,  timer1.interval=5000;
  DataSend(Add)
  {  send地址数据;
      timer1.start();}

   DataReceived(object send,e)
   {  timer1.stop();
       接收返回数据并显示在界面上;}

   timer1_tick(object send,e)
    {   DataSend(Add);  }

这样写对不对,为什么这样写只在发第一条数据超时的时候会调用timer1_tick()重发,之后的数据发送后就不会了?
--------------------编程问答-------------------- 请设置
             time1.AutoReset = true;
            time1.Enabled = true; --------------------编程问答-------------------- 发少了,中间函数完整的应该是:
DataReceived(object send,e)
  { timer1.stop();
    接收返回数据并显示在界面上;
    Add++;
     DataSend(Add);
  }

--------------------编程问答-------------------- time1.Enabled = true;和 timer1.start();应该是等效的吧。
我用的是System.Windows.Forms.timer类,不是System.timer类,没有time1.AutoReset
--------------------编程问答-------------------- 自己顶一下
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,