zoukankan      html  css  js  c++  java
  • Windows服务程序时钟调用

    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:  服务无法启动。

    源代码下载:

    http://files.cnblogs.com/yongfeng/WindowsServiceDemo.rar

    PDF下载:

    Windows服务程序时钟调用.pdf

    Windows服务创建文档.pdf

  • 相关阅读:
    CSS3 not
    rxjs1
    Angular 2 组件之间如何通信?
    开发去。。
    补零补零
    MySQL数据库从复制及企业配置实践
    互联网中接口安全解决方案
    redis服务打不开--解决办法
    搭建Git服务器
    git将当前分支上修改的东西转移到新建分支
  • 原文地址:https://www.cnblogs.com/yongfeng/p/3637901.html
Copyright © 2011-2022 走看看