Windows服务代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.IO;
using System.Threading;
namespace WindowsService1
{
partial class TestWS : ServiceBase
{
private bool status = true;//全局变量
public TestWS()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
Log("启动服务");
//定时器
System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Interval = 10 * 1000;
timer1.Elapsed += new System.Timers.ElapsedEventHandler(Done);
timer1.AutoReset = true;
timer1.Enabled = true;
}
protected override void OnStop()
{
Log("停止服务");
}
/// <summary>
/// 定时任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Done(object sender, EventArgs e)
{
Log("TODO... status:" + status.ToString());
status = false;
}
protected void Log(string msg)
{
File.AppendAllText(@"c:\ws.log", string.Format("{0}:{1}\r\n",DateTime.Now.ToString("HH:mm:ss"),msg));
}
}
}说明:Windows服务中声明了一全局变量status,初始值为true,定时器启动后将status值更改为false,测试停止、启动服务后,status值的变化情况。
测试日志:
17:05:11:启动服务
17:05:21:TODO... status:True
17:05:31:TODO... status:False
17:05:41:TODO... status:False
17:05:51:TODO... status:False
17:06:01:TODO... status:False
17:06:11:TODO... status:False
17:06:20:停止服务
17:07:56:启动服务
17:08:06:TODO... status:True
17:08:16:TODO... status:False
17:08:26:TODO... status:False
17:08:36:TODO... status:False
17:08:44:停止服务
可见,停止再启动Windows服务后,status全局变量重新初始化为true。
评论(0)
暂无评论。