开发环境:vs2005
实现目的:定时执行一个事件。
我使用timer.因为是服务方式运行的程序,所以采用组件中的timer控件。(网上的人说不能使用窗体下的timer控件)
但是
private void timer_Tick(object sender, EventArgs e)
{
    WriteLog("ReadConfigIni", "timer test");
}
没有执行这个函数。
初始化好像也做了。
 this.timer = new System.Windows.Forms.Timer(this.components);
// 
// timer
// 
this.timer.Interval = 10000;
this.timer.Tick += new System.EventHandler(this.timer_Tick);

解决方案 »

  1.   

     new System.Windows.Forms.Timer(this.components); 
    ----------
    这不还是窗体下的Timer吗?
    你可以使用System.Timers.Timer;并需要Enabled = true;或调用Start
      

  2.   

    需要加上timer.start()才能执行timer_tick里面的内容,所有都执行完之后,用timer.stop()结束。
      

  3.   

    2楼的问题,我注意到了,但是你使用组建方式添加timer创建编译器自动添加的代码就是这样的。2,4楼的方法我已经试过了,还是不能执行timer_tick的内容。不知道为啥。
      

  4.   

    2楼问题,我知道,但是添加组件中的timer初始化代码默认就是这样的。
    3.4的方法,我试验了一下还是不执行timer_tick的内容。
      

  5.   

    但是添加组件中的timer初始化代码默认就是这样的----------
    你选的那个Timer就是窗体中使用的,你需要手动通过代码来使用System.Timers.Timer。不能拖入。
      

  6.   

    直接把timer拖进去就可以使用了,只要运行到timer.start(),就可以运行到timer_tick
      

  7.   

    8楼的测试过了么?
    应该不行的。
    还有7楼的我手动修改成System.Timers.Timer不行的。
    我只好选择了2楼的方法,创建一个System.Timers.Timer在程序中使用了。
    可能对于服务方式的程序不行吧。还没找到方法,只能绕着走了。在留几天,看看有高手么。