Windows服务程序时钟调用
2014-04-01 11:36 夜雨瞳 阅读(1520) 评论(0) 编辑 收藏 举报1 大概思路
- 设计服务程序
- 创建服务
- 安装必备组件
- 编写Service1
- 运行效果
2 设计服务程序
创建服务程序,通过添加System.Timers时钟进行定时向Wecome.txt写入文本。
3 创建服务
创建项目、安装项目
(通过工具箱添加System.Timers组件,系统时钟组件,不同于System.Windows.Forms)
4 安装必备组件
5 编写Service1
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using System.IO; namespace WindowsServiceDemo { public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } /// <summary> /// 标识开始 /// </summary> private string flag = string.Empty; /// <summary> /// 允许时钟开始 /// </summary> private bool isBegin = true; protected override void OnStart(string[] args) { flag = "开始时间:"; this.timer1.Enabled = true; } protected override void OnStop() { } /// <summary> /// 9000毫秒调度一次,即9秒高度一次 /// create by zhyongfeng in 2014-03-26 /// </summary> /// <param name="sender">object</param> /// <param name="e"> System.Timers.ElapsedEventArgs</param> private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { //开始 if (!isBegin) return; isBegin = false; try { FileStream nFile = new FileStream(System.AppDomain.CurrentDomain.BaseDirectory + "Wecome.txt", FileMode.Append, FileAccess.Write); StreamWriter writer = new StreamWriter(nFile); writer.WriteLine(flag + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); writer.WriteLine("Welcome to Write:" + DateTime.Now.ToFileTimeUtc().ToString()); writer.WriteLine(); writer.Close(); LogUtility.Logging(Process.GetCurrentProcess().MainModule.ModuleName, Process.GetCurrentProcess().MachineName, Process.GetCurrentProcess().MainModule.ModuleName, LogUtility.EVENT.EVENT_WARNING, "新增了"); } catch { } isBegin = true; } } }
6 运行效果
开始->运行->services.msc,可见如下图
开始->运行->eventvwr.msc,可见如下图
7 总结
Windows服务可通过修改以下属性,通过System.Timers组件达到自动控制的功能,针对一些运行周期长的数据可通过Windows服务处理(如通过捕捉大量数据收发邮件等)。
serviceInstaller1属性值说明
Manual:服务安装后,必须手动启动。
Automatic :每次计算机重新启动时,服务都会自动启动。
Disabled: 服务无法启动。
源代码下载:
https://files.cnblogs.com/yongfeng/WindowsServiceDemo.rar
PDF下载: