写了一个服务的测试。安装成功了,在系统服务中的状态是启动的。是不是我的执行方式有问题。timer是system下的不是form下的那个。 public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
timer1.Start();
} protected override void OnStop()
{
timer1.Stop();
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
} private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
string sql = "INSERT INTO sys_temp values('"+DateTime.Now.ToString()+"')";
ClassMyData.DbSystem db = new ClassMyData.DbSystem();
db.ExecSql(sql);
}
}
{
public Service1()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
timer1.Start();
} protected override void OnStop()
{
timer1.Stop();
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
} private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
string sql = "INSERT INTO sys_temp values('"+DateTime.Now.ToString()+"')";
ClassMyData.DbSystem db = new ClassMyData.DbSystem();
db.ExecSql(sql);
}
}
我就做过一个Service,之前也没详细看过具体该怎么做一个Service
我就说两点,1是我觉得你的Service是不是需要一个MainLoop啊
2是,我也用到了Timer,我是这样用的
TimerWatcher = new System.Timers.Timer();
TimerWatcher.AutoReset = false;
TimerWatcher.Elapsed += new ElapsedEventHandler(TimerWatcher_Elapsed);
TimerWatcher.Interval = ts.TotalMilliseconds; //ts is a TimeSpan
TimerWatcher.Enabled = true;