我开发了一个Windows服务,用于将文件从一个位置复制到另一个位置。
由于我需要在后台运行服务,因此需要实现定时器功能。
Service.cs
protected override void OnStart(string[] args)
{
//OnStart(new string[0]);
}
public void Start()
{
timer1 = new Timer();
this.timer1.Interval = 30000; //every 30 seconds
41 ***this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.mysql);***
timer1.Enabled = true;
43 mysql();
}
static void mysql()
{
**File copy code included in this function.
}
错误在上面提到的第41行触发,是,
'mysql'没有重载匹配委托'ElapsedEventHandler'。
像这样在mysql()上设置param
static void mysql(object sender, ElapsedEventArgs e)
我希望这个对你有用 :)
++通过评论添加
此代码将允许计时器与间隔一起工作
在Start()中添加此代码
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.mysql_tick);
并从Start()中添加此代码
private void mysql_tick( object sender, EventArgs e ){
blah blah... }
++之后你需要使用timer1.Start();与mysql_tick一起工作
++ timer1.Stop();将停止工作。