程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Windows服務程序時鐘的調用方法

Windows服務程序時鐘的調用方法

編輯:關於.NET

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved