下面是“C#添加Windows服务 定时任务”的完整攻略:
需要准备的工具和知识
- Visual Studio或其他C#开发工具
- 熟悉C#的基本语法
- 熟悉Windows服务和定时任务的概念
第一步:创建Windows服务项目
- 打开Visual Studio,选择“新建项目”
- 在弹出的“新建项目”对话框中,选择“Windows服务”项目类型
- 输入项目名称,选择保存位置,点击“创建”
第二步:设置服务属性
- 打开“解决方案资源管理器”中的“Properties”节点,双击打开“AssemblyInfo.cs”文件
- 在文件中添加以下代码:
[assembly: AssemblyDescription("My Windows Service")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("My Company")]
[assembly: AssemblyProduct("My Product")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
其中,AssemblyDescription
表示服务的描述信息,AssemblyCompany
和AssemblyProduct
表示公司名称和产品名称。
第三步:设置Windows服务的代码逻辑
- 打开“解决方案资源管理器”中的“Service1.cs”文件,修改服务名称和服务描述:
this.ServiceName = "MyService";
this.EventLog.Log = "Application";
this.EventLog.Source = "MyService";
this.EventLog.Description = "This is my Windows Service.";
- 新增一个定时任务:
private System.Timers.Timer timer1 = null;
protected override void OnStart(string[] args)
{
timer1 = new System.Timers.Timer();
timer1.Interval = 60000; // 60 seconds
timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Tick);
timer1.Enabled = true;
this.EventLog.WriteEntry("MyService started.");
}
public void timer1_Tick(object sender, ElapsedEventArgs e)
{
this.EventLog.WriteEntry("MyService is doing something...");
}
其中,OnStart
方法会在服务启动时调用,创建一个定时器,设置定时器的间隔和回调函数;timer1_Tick
方法表示定时器的回调函数,这里只是简单地写入一个日志。
第四步:安装和卸载服务
- 打开命令提示符,切换到Windows服务可执行文件所在的目录
- 安装服务:
installutil.exe MyService.exe
(注意,需要使用管理员身份运行命令提示符) - 启动服务:
net start MyService
- 停止服务:
net stop MyService
- 卸载服务:
installutil.exe /u MyService.exe
示例
示例一:在定时任务中获取并打印系统时间
public void timer1_Tick(object sender, ElapsedEventArgs e)
{
DateTime now = DateTime.Now;
this.EventLog.WriteEntry(string.Format("System time: {0}", now.ToString()));
}
示例二:在定时任务中调用外部程序
public void timer1_Tick(object sender, ElapsedEventArgs e)
{
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.Start();
}
以上就是“C#添加Windows服务 定时任务”的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#添加Windows服务 定时任务 - Python技术站