.net 定时执行 windows 服务
2024-09-05 03:18:58
1.新建项目 --》 Windows 服务 2.Service1.cs代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.IO;
using System.Text;
using System.Timers;
using System.Data.SqlClient;
using System.Threading;
namespace InnPoint
{
public partial class Service : ServiceBase
{
public Service()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("我的服务启动");//在系统事件查看器里的应用程序事件里来源的描述
writestr("服务启动");//自定义文本日志
System.Timers.Timer t = new System.Timers.Timer();
t.Interval = 1000;
t.Elapsed += new System.Timers.ElapsedEventHandler(ChkSrv);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
}
/// <summary>
/// 定时检查,并执行方法
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
public void ChkSrv(object source, System.Timers.ElapsedEventArgs e)
{
int intHour = e.SignalTime.Hour;
int intMinute = e.SignalTime.Minute;
int intSecond = e.SignalTime.Second;
if (intHour == 13 && intMinute == 30 && intSecond == 00) ///定时设置,判断分时秒
{
try
{
System.Timers.Timer tt = (System.Timers.Timer)source;
tt.Enabled = false;
SetInnPoint();
tt.Enabled = true;
}
catch (Exception err)
{
writestr(err.Message);
}
}
}
//我的方法
public void SetInnPoint()
{
try
{
writestr("服务运行");
//这里执行你的东西
Thread.Sleep(10000);
}
catch (Exception err)
{
writestr(err.Message);
}
}
///在指定时间过后执行指定的表达式
///
///事件之间经过的时间(以毫秒为单位)
///要执行的表达式
public static void SetTimeout(double interval, Action action)
{
System.Timers.Timer timer = new System.Timers.Timer(interval);
timer.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e)
{
timer.Enabled = false;
action();
};
timer.Enabled = true;
}
public void writestr(string readme)
{
//debug==================================================
//StreamWriter dout = new StreamWriter(@"c:/" + System.DateTime.Now.ToString("yyyMMddHHmmss") + ".txt");
StreamWriter dout = new StreamWriter(@"c:/" + "WServ_InnPointLog.txt", true);
dout.Write("/r/n事件:" + readme + "/r/n操作时间:" + System.DateTime.Now.ToString("yyy-MM-dd HH:mm:ss"));
//debug==================================================
dout.Close();
}
protected override void OnStop()
{
writestr("服务停止");
EventLog.WriteEntry("我的服务停止");
}
}
}
3.在Service1.cs设计页面右键添加安装程序
4.ProjectInstaller.cs设计页面中
serviceInstaller1属性中设置:
Description(系统服务的描述)
DisplayName (系统服务中显示的名称)
ServiceName(系统事件查看器里的应用程序事件中来源名称)
serviceProcessInstaller1属性设置:
Account 下拉设置成 LocalSystem
5.在.net Framework的安装目录可以找到InstallUtil.exe,可以复制出来放在你的服务生成的exe一起
6.安装服务setup.bat批处理文件内容:InstallUtil Service1.exe ,安装好后可以在系统服务中找到你设置的服务名称然后可以启动这个服务
7.卸载服务UnInstall.bat批处理文件内容:InstallUtil -u Service1.exe
转自:http://blog.csdn.net/windxxf/article/details/6014538
最新文章
- ASP.NET MVC学习之母版页和自定义控件的使用
- Web系统大规模并发——电商秒杀与抢购
- H264解码学习-2015.04.16
- Win7安装visual c++ 2015 redistributable x64失败
- CentOS下IP的配置
- 关于ucosII系统的软件系统裁剪性
- ACdream 1735 输油管道 (排序)
- discuz pc端显示触摸版
- 字符串处理---统计每一行字符串当中的字符“u”个数
- CSS,点击去除虚线边框代码
- 《Linux内核分析》 week5作业-system call中断处理过程
- IPTABLES封闭和开放端口
- html5test
- (Problem 62)Cubic permutations(待续)
- Struts工作机制图+OGNL+EL+值栈(Map,对象栈)
- centos7安装docker并安装jdk和tomcat(常用命令)
- .Net程序员学用Oracle系列:视图、函数、存储过程、包
- 杭电oj-1002-A+B Problem
- jmeter的介绍和使用二
- 关于 TVM
热门文章
- POJ 2763 Housewife Wind(DFS序+LCA+树状数组)
- Codeforces Round #402 (Div. 2) D. String Game(二分答案水题)
- HDU 5307 He is Flying ——FFT
- 自己搭建了一个blog
- matplotlib pyplot 中文显示问题
- jQuery基础 浅析(含基本方法和选择器)
- group by timestamp
- SPOJ HIGH Highways
- 【Educational Codeforces Round 53 (Rated for Div. 2)】
- EasyUI-Accordion