C# 写Windows服务

      服务是一个运行在后台的程序,他没有界面,不能交互,只能孤独的独自运行。

  在开始->运行->输入services.msc可以打开服务管理器,这里可以查看和管理服务  

  很多时候都会用到服务,因为服务简化了我们的操作,省去了很多人力,最近公司需要同步数据,我也自己写了个服务,这里把服务的主要程序贴出来,给大家参考,也方便以后自己查阅。

C#服务程序
protected override void OnStart(string[] args)
{
//启动timer
//period = ServiceSettings.Default.ServiceTimerIntervalSecond * 1000;
// period = Convert.toint * period;//
serviceTimer = new Timer(new TimerCallback(TimerCallback), state, 0, period);


}

protected override void OnStop()
{
//停止计时器
EndThing();
serviceTimer.Change(Timeout.Infinite, Timeout.Infinite);
}

protected override void OnContinue()
{
//重新开始计时
serviceTimer.Change(0, period);

}

protected override void OnPause()
{
//停止计时器
EndThing();
serviceTimer.Change(Timeout.Infinite, Timeout.Infinite);

}

public void TimerCallback(object obj)
{
//隔一段时间调用一次
DoThing();
}

  serviceTimer = new Timer(new TimerCallback(TimerCallback), state, 0, period);
此处,state用于保存状态,如果不需要,保存状态,可以传入null。第三个参数0表示立即调用TimerCallback方法,如果不需要立即调用,可以传入period。period是计时器的计时间隔,单位为毫秒。

  服务写好后,还得配置,以方便安装

  因此,首先转到设计视图中,并选择属性窗口(可以按下F4)。

  把CanStop和CanShutdown设置为true。在安装之前,我们必须要安装一个安装程序。

  右击设计视图窗口,然后选择"Add Installer"。然后,它将显示ProjectInstaller.cs。在这个文件中,serviceInstaller1和serviceProcessInstaller1都存在。转到serviceProcessInstaller1属性处:

  · 把Account设置为LocalSystem。

  · 然后,转到serviceInstaller1属性处。

  · 把DisplayName和ServiceName设置为Monitoring。

  · 设置启动类型(StartType)为automatic。

      服务写好了,还需要注册,不然不会运行,方法如下:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil  Path

  方法卸载的方法:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil -u Path

  本人长期代人写DEMO,功能点DEMO、入门教程等,如果有需要的可以联系我

原文地址:https://www.cnblogs.com/_fyz/p/1864378.html