• winform Timer(转)


    今天和同事一起研究了下windows服务程序中的Timer控件的写法.
    我们在建立一个windows服务程序后,要用到计时器的话一般都会想到Timer控件,于是到工具器把Timer控件拉过来,双击写事件,设置时间,哇,成功了....
    但服务一跑起来,唉,怎么回事,时间到了怎么没有执行事件呢???????
    后来,我找很多资料才知道,这个Timer控件是winForm下的,不能用在windows服务程序中.
    怎么办呢.......
    打开"工具箱"---右键---"选择项"---找到Timer控件,看好了,这个Timer控件的是system.Timer下的.可不是System.Windows.Form.然后添加.
    双击...写事件...

     

                if (strSelectedItemName == "GetURCBValues")
                {

                    
    this.timer1.Enabled = true;
                    
    this.timer1.Start();
                    
    return;             
                }
                
    else
                {
                    
    this.timer1.Stop(); //停止计时
                }
     

     
    关于C#timer  C#里关于定时器类就有3   
    1.
    定义在System.Windows.Forms   
    2.
    定义在System.Threading.Timer类里  " 
    3.
    定义在System.Timers.Timer类里  

    System.Windows.Forms.Timer
    是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VBDelphi中的Timer控件,内部使用API  SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console  Application(控制台应用程序)无法使用。   
      
    System.Timers.Timer
    System.Threading.Timer非常类似,它们是通过.NET  Thread  Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。System.Timers.Timer还可以应用于WinForm,完全取代上面的Timer控件。它们的缺点是不支持直接的拖放,需要手工编码。 

    例: 
    使用System.Timers.Timer 
    System.Timers.Timer t = new System.Timers.Timer(10000);//实例化Timer类,设置间隔时间为10000毫秒; 
    t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件; 
    t.AutoReset = true;//设置是执行一次(false)还是一直执行(true); 
    t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件; 

    public void theout(object source, System.Timers.ElapsedEventArgs e) 
     { 
        MessageBox.Show(
    "OK!"); 
     } 
  • 相关阅读:
    一次函数(好难的一次函数)
    脱水缩合(大搜索)
    背单词
    仙人掌(cactus)
    LYK 快跑!(LYK别打我-)(话说LYK是谁)
    巧克力棒
    选数字(贪心+枚举)
    看程序写结果(program)
    np问题
    IUYYLIUIU
  • 原文地址:https://www.cnblogs.com/softwareking/p/2070682.html
Copyright © 2020-2023  润新知