这是我的代码
protected override void OnStart(string[] args)
{
timAutoUpdate.Enabled = true;
MessageBox.Show("started");
}
protected override void OnStop()
{
timAutoUpdate.Enabled = false;
System.Windows.Forms.MessageBox.Show("Service stopped");
}
private void timAutoUpdate_Tick(object sender, EventArgs e)
{
MessageBox.Show("Ticked");
}
在启动事件后显示消息“Ticked”。如果我在Onstart事件中删除了messagebox,那么Tick事件不起作用。它没有显示任何消息。请指明它背后的原因。我只是在Tick事件中保留了简单的消息框我的代码。请告诉我实现它的方法。
protected override void OnStart(string[] args)
{
timAutoUpdate.Enabled = true;
}
protected override void OnStop()
{
timAutoUpdate.Enabled = false;
}
private void timAutoUpdate_Tick(object sender, EventArgs e)
{
MessageBox.Show("Ticked");
}
答案 0 :(得分:0)
如果是这种情况,则需要更改它,因为此计时器不适用于Windows服务(http://msdn.microsoft.com/en-us/magazine/cc164015.aspx)
试试这段代码:
protected override void OnStart(string[] args)
{
scheduleTimer = new System.Threading.Timer(new TimerCallback(AutoTick), null, 0, 3000);
eventLogEmail.WriteEntry("Test");
}
private void AutoTick(object state)
{
MessageBox.Show("Ticked")
}