一、需求

我们有时候可能会想要做一些定时任务,例如每隔一段时间去访问某个网站,或者下载一些东西到我们服务器上等等之类的事情,这时候windows service 是一个不错的选择。

二、实现

1、打开Visua studio2013新建一个windows Service程序,我命名为TimerService

注意,这里的.NET Framwork框架的选择要与你电脑上的框架一致,我这里选择的是4.0

2、在Service1设计器中右击空白处选择查看代码

3.在Service1.cs中设定定时的时间间隔以及定时执行的任务这里的Onstart方法定义定时器的开始执行,执行的时间间隔,以及时间间隔达到后所要执行的方法,我这里是执行了一个文件写入的方法,代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;namespace TimerService
{public partial class Service1 : ServiceBase{Timer timer;public Service1(){InitializeComponent();}protected override void OnStart(string[] args){timer = new Timer(1000);timer.Elapsed += new ElapsedEventHandler(Timer_Elapsed);timer.Start();WriteLog("服务启动");}protected override void OnStop(){timer.Stop();timer.Dispose();WriteLog("服务停止");}protected void Timer_Elapsed(object sender, ElapsedEventArgs e){WriteLog("服务执行中");}protected void WriteLog(string str){string filePath = AppDomain.CurrentDomain.BaseDirectory + "Log.txt";StreamWriter sw = null;if (!File.Exists(filePath)){sw = File.CreateText(filePath);}else{sw = File.AppendText(filePath);}sw.Write(str + DateTime.Now.ToString() + Environment.NewLine);sw.Close();}}
}

4、在Service1设计器中右击空白处,选择添加安装程序,会添加一个ProjectInstaller设计器

5、在ProjectInstaller设计器中选择serviceProcessInstaller,右击查看属性,将Account的值改为LocalSystem

6、在ProjectInstaller设计器中选择serviceInstaller1,右击查看属性,这里的ServiceName就是要在服务器的服务中显示的名称,我将其命名我TimerService

7、右击解决方案,点击生成解决方案

三、安装

1、打开刚刚新建建项目所在的文件夹,找到bin文件下面的debug文件夹,即D:\用户目录\我的文档\Visual Studio 2013\Projects\TimerService\TimerService\bin\Debug,里面有个TimerService.exe应用程序,就是我们所要执行的项目

2、打开文件夹C:\Windows\Microsoft.NET\Framework\v4.0.30319,可以看到里面有一个InstallUtil.exe的应用程序,这就是我们要的安装工具,这里的Framework的版本与我们项目的Framework版本保持一致

3、打开cmd输入cd C:\Windows\Microsoft.NET\Framework\v4.0.30319指令,然后再输入InstallUtil D:\用户目录\我的文档\Visual~1\Projects\TimerService\TimerService\bin\Debug\TimerService.exe,即可完成安装

4、启动任务管理器,点击服务,找到名称TemrService的服务,右击启动,即可将创建的定时服务启动,这里的服务名称就是我们在项目的serviceInstaller1的属性里面设置的serviceName

5、在我们的D:\用户目录\我的文档\Visual Studio 2013\Projects\TimerService\TimerService\bin\Debug文件下面会发现多了一个log.txt的文件,就是我们在项目中创建的文件,打开即可看到项目正常执行

四、卸载

要卸载应用服务也很简单,只需要在cmd中输入以下指令即可

InstallUtil /u D:\用户目录\我的文档\Visual~1\Projects\TimerService\TimerService\bin\Debug\TimerService.exe

转载于:https://www.cnblogs.com/getpower/p/5703838.html

使用Windows service创建一个简单的定时器相关推荐

  1. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

  2. 创建一个简单的应用程序窗口,显示“欲穷千里目 更上一层楼”。这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红、绿、黄、蓝,四种字体分别为宋体、楷

    创建一个简单的应用程序窗口,显示"欲穷千里目 更上一层楼".这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红.绿.黄.蓝,四 ...

  3. 本文将引导你使用XNA Game Studio Express一步一步地创建一个简单的游戏

    本文将引导你使用XNA Game Studio Express一步一步地创建一个简单的游戏 第1步: 安装软件 第2步: 创建新项目 第3步: 查看代码 第4步: 加入一个精灵 第5步: 使精灵可以移 ...

  4. 使用Webtask.io创建一个简单的REST API端点

    by ismapro 由ismapro 使用Webtask.io创建一个简单的REST API端点 (Create a simple REST API endpoint using Webtask.i ...

  5. C#游戏编程之创建一个简单的卷轴射击游戏

    前几天很多朋友要求贴一篇有关C#游戏开发的实例.本篇文章是创建一个简单的卷轴射击游戏开发实例,内容比较完整,分享给大家,不过篇幅有些长,可以慢慢看哈!本文除CSDN博客外,任何媒体和出版物禁止转载和使 ...

  6. 用windows“记事本”创建一个文本文件(hamlet.txt),其中每行包含一段英文。试读出文件的全部内容,并判断:(1)该文本文件有多少行?(2)文件中以大写字母开头的有多少行?

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 题目: 代码: 效果截图: 总结 题目: 用windows"记事本"创建一个文本文件(hamlet.txt) ...

  7. ROS2入门教程—创建一个简单的订阅者和发布者(C++版)

    ROS2入门教程-创建一个简单的订阅者和发布者(C++版) 1 创建功能包 2 创建发布者节点 3 设置发布者节点依赖项 4 设置发布者节点编译规则 5 创建订阅者 6 编译并运行   节点是通过RO ...

  8. Beginning WF4读书笔记(一):创建一个简单的工作流

    让我们以创建一个简单的工作流开始.开启Visual Studio (VS) 2010,选择New Project.在已经安装的模版下面,选择Visual C#-Workflow,你会看到提供了四个模版 ...

  9. C#.net创建一个简单的消息队列程序(MessageQueue)

    MessageQueue:消息队列,现在应用也是越来越广泛,如微信朋友圈,可以概括为仅仅两条消息队列,消息队列常用于处理高并发的问题,当我们在实际应用中发现接收到数据量过多时,可以使用队列. 微软提供 ...

  10. python做的简单gui计算器_Python计算器–使用Tkinter创建一个简单的GUI计算器

    在Python计算器教程中,您将学习创建简单的GUI计算器.在这篇文章中,我将向您展示如何使用python中的tkinter模块开发一个简单的计算器.因此,让我们进一步创建一个简单的python计算器 ...

最新文章

  1. Java多线程之线程池的使用示例
  2. 想让进程后台运行,试试Linux的nohup命令,3分钟学会。
  3. r语言 断轴 画图_R 绘图 – 函数曲线图 | 菜鸟教程
  4. Tomcat5.5 配置mysql数据库连接池
  5. Linux 查看磁盘或文件夹及文件大小
  6. boost序列化(Serialization)
  7. linux写参数文件,linux下纯C++读取参数配置文件
  8. [转]Android应用的自动更新
  9. 4-算法冒泡排序 插入排序
  10. 翻译 - 元编程动态方法之public_send
  11. 程序functionLua基础 小结(两个Lua程序示例)
  12. linux 网卡bond
  13. 项不会计算为接受 0 个参数的函数_玩转excel函数:详解四种计数函数,从基础到提高...
  14. 专接本C语言必背程序
  15. bryntum gantt 5.0.6
  16. 狂神说Spring学习笔记————(一发入魂)
  17. mouse hover时就显示提示信息,太烦了,怎样屏蔽它
  18. Linux查看文本中关键字的行
  19. Android性能优化-内存优化
  20. 1.微信公众号开发:申请公众平台测试账号

热门文章

  1. 进程的同步和互斥反映了_进程的同步和互斥
  2. linux Flatpak 安装包,snap卸载
  3. Win10 系统 WebLogic 12cR2 下载与安装图解
  4. SelectionKey 说 明
  5. Spring Boot 概述、初始化器、spring-boot-maven-plugin 插件简化部署、starter 自动配置原理
  6. ScheduledExecutorService 延迟 / 周期执行线程池
  7. mysql自动去重_关于mysql自联去重的一些记录
  8. 小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下...
  9. Codeforces 1110D. Jongmah 动态规划
  10. FileInputStream实现读取文件内容并输出到屏幕上