功能说明:C#创建一个windows服务,服务启动时D:\mcWindowsService.txt写入数据,服务运行期间每隔两秒写入当前时间。

原理这些就不说了,三语两语说不清楚,直接贴一个实例。不能贴图片!!那个压缩文里面是word文档!!有图有真相

1.建立空白项目

2.添加创建windows服务需要的引用,选择System.ServiceProcess。

3.创建服务类,继承ServiceBase,类的源代码在后面。

4. 添加windows服务的安装类。 
(1)在类名或者解决方案中新建视图:

(2)上一步后会出来类的视图,右键选择查看设计器:

(3)在设计视图里面添加安装器(有可能会弹出警告框,如图,不用管):

服务创建完成!

安装运行就不用说了吧!!

6 服务类源代码():

  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Timers;
  8. namespace SR171
  9. {
  10. class Service17: System.ServiceProcess.ServiceBase
  11. {
  12. public Service17()//可以自己设定
  13. {
  14. this.ServiceName = "MyServiceForShowTime";
  15. this.CanStop = true;
  16. this.CanPauseAndContinue = true;
  17. this.AutoLog = true;
  18. #region 定时器事件
  19. Timer aTimer = new Timer();       //System.Timers,不是form的
  20. aTimer.Elapsed += new ElapsedEventHandler(TimedEvent);
  21. aTimer.Interval = 2 * 1000;    //配置文件中配置的秒数
  22. aTimer.Enabled = true;
  23. #endregion
  24. }
  25. public static void Main()//必须写
  26. {
  27. System.ServiceProcess.ServiceBase.Run(new Service17());
  28. }
  29. protected override void OnStart(string[] args)//自己根据要求覆写
  30. {
  31. FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
  32. StreamWriter m_streamWriter = new StreamWriter(fs);
  33. m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
  34. m_streamWriter.WriteLine("mcWindowsService: Service Started" + DateTime.Now.ToString() + "\n");
  35. m_streamWriter.Flush();
  36. m_streamWriter.Close();
  37. fs.Close();
  38. }
  39. protected override void OnStop()
  40. {
  41. FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
  42. StreamWriter m_streamWriter = new StreamWriter(fs);
  43. m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
  44. m_streamWriter.WriteLine(" mcWindowsService: Service Stopped " + DateTime.Now.ToString() + "\n");
  45. m_streamWriter.Flush();
  46. m_streamWriter.Close();
  47. fs.Close();
  48. }
  49. private static void TimedEvent(object source, ElapsedEventArgs e)         //运行期间执行
  50. {
  51. FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
  52. StreamWriter m_streamWriter = new StreamWriter(fs);
  53. m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
  54. m_streamWriter.WriteLine("  Running.11.. " + DateTime.Now.ToString() + "\n");
  55. m_streamWriter.Flush();
  56. m_streamWriter.Close();
  57. fs.Close();
  58. }
  59. }
  60. }

C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)的更多相关文章

  1. 解决windows 服务中定时器timer 定时偶尔失效 问题

    最近做个windows 服务,功能是:定时执行一个任务:自动登录到一个网站后,点击相关网面上的按钮button. 在处理的过程中发现定时器老是不定时的失效,失效时间没有规律. 由于刚开始处于测试阶段, ...

  2. vs 2010创建Windows服务定时timer程序

    vs 2010创建Windows服务定时timer程序: 版权声明:本文为搜集借鉴各类文章的原创文章,转载请注明出处:  http://www.cnblogs.com/2186009311CFF/p/ ...

  3. 使用Topshelf创建Windows 服务

    本文转载: http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html http://www.cnblogs.com/jys509/p ...

  4. 创建Windows服务(Windows Services)N种方式总结

    最近由于工作需要,写了一些windows服务程序,有一些经验,我现在总结写出来.目前我知道的创建创建Windows服务有3种方式:a.利用.net框架类ServiceBaseb.利用组件Topshel ...

  5. 使用 Topshelf 创建 Windows 服务

    Ø  前言 C# 创建 Windows 服务的方式有很多种,Topshelf 就是其中一种方式,而且使用起来比较简单.下面使用 Visual Studio Ultimate 2013 演示一下具体的使 ...

  6. (转)创建Windows服务(Windows Services)N种方式总结

    转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...

  7. 用C#创建Windows服务(Windows Services)

    用C#创建Windows服务(Windows Services) 学习:  第一步:创建服务框架 创建一个新的 Windows 服务项目,可以从Visual C# 工程中选取 Windows 服务(W ...

  8. 使用Topshelf创建Windows服务

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  9. [Solution] Microsoft Windows 服务(2) 使用Topshelf创建Windows服务

    除了通过.net提供的windows服务模板外,Topshelf是创建Windows服务的另一种方法. 官网教程:http://docs.topshelf-project.com/en/latest/ ...

随机推荐

  1. 数往知来 asp.net 聊天室问题解决方案<十六>

      1:在服务端创建了一个负责监听的sokcet   //三个:采用TCP协议.              ListenSocket = new Socket(AddressFamily.InterN ...

  2. 记录一下ORACLE 10gR2的软件下载地址,备用。

    转载自:http://www.eygle.com/archives/2008/06/10gr2_download_link.html 记录一下ORACLE 10gR2的软件下载地址,备用. 下载OTN ...

  3. 在VS2103环境中集成Doxygen工具

    自己已将学习了两三次了吧,差不多这次该总结一下: Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C.C++.Java.Objective-C和IDL语言,部分支持P ...

  4. poj2528(线段树+离散化)Mayor's posters

    2016-08-15 题意:一面墙,往上面贴海报,后面贴的可以覆盖前面贴的.问最后能看见几种海报. 思路:可以理解成往墙上涂颜色,最后能看见几种颜色(下面就是以涂色来讲的).这面墙长度为1~1000 ...

  5. HTML5每日一练之OL列表的改良

    在HTML5中的OL被改良了,为它增加了两个新属性. start属性:start属性用来定义列表编号的起始位置,比如下面的代码,列表将从50开始51...55以此类推 <ol start=&qu ...

  6. Shell 脚本基本操作练习

    这里主要是熟悉了shell的基本操作,包括变量赋值引用修改.函数的使用.信号的获取及一些判断方法等,具体详见代码: #!/bin/sh str="Hello World !" ec ...

  7. C++ 之关联容器 map

    标准库定义了四种关联容器:map是其中之一(另外还有set.multimap.multiset).map的元素以键-值(key-value),在学了顺序容器之后,再学习关联容器,就比较比较好理解了. ...

  8. Altium Designer 6三维元件库建模教程

    一.AD6.9 PCB编辑环境下如何使用STEP模型的方法. 在PCB 封装库中添加对应的3D模型,然后选择update pcb 即可 方法:在PCB library 页面,点击place -- 3d ...

  9. HDU2948Geometry Darts(简单计算几何)

    题目大意就是说两个人掷飞镖,飞镖在所给定的图形内就记一分,现在给定N个图形(圆.三角形和矩形),问每一次比赛(没人分别掷三次)谁赢. #include <map> #include < ...

  10. Lotus 迁移到Exchange 2010 之准备使用Transport 同步Lotus 相关信息!

    这里我们先来分析下Lotus迁移到Exchange2010 的一些原理,由于存在一定周期的共存时间,因此在共存期间必须来实现相应的同步计划,整个同步计划包含了如下的同步计划: