zoukankan      html  css  js  c++  java
  • 【C#Windows 服务】 《三》Timer设置

    一、工具:

    VS2015+NET Framework4.5。

    二、操作:

    1、计时器设置:

    2、日志代码:

    三、代码:

    1、日志代码:

    复制代码
     1 /// <summary>
     2         /// Windowns服务的日志记录
     3         /// </summary>
     4         /// <param name="dbLog"></param>
     5         public static void WriteDBLogFile(string dbLog)
     6         {
     7             // string logfilename = HttpContext.Current.Server.MapPath("/Log") + "/log_" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
     8             string logfilename = AppDomain.CurrentDomain.BaseDirectory + "/log_" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
     9             System.IO.StreamWriter write;
    10             write = new System.IO.StreamWriter(logfilename, true, System.Text.Encoding.Default);
    11             write.BaseStream.Seek(0, System.IO.SeekOrigin.End);
    12             write.AutoFlush = true;
    13             if (null != write)
    14             {
    15                 lock (write)
    16                 {
    17                     //write.WriteLine("——————————————Windowns服务的日志记录开始————————————————");
    18                     write.WriteLine("Windowns服务的日志记录内容:" + dbLog);
    19                     write.WriteLine("Windowns服务的日志记录时间:" + DateTime.Now);
    20                     //write.WriteLine("——————————————Windowns服务的日志记录结束————————————————");
    21                     write.Flush();
    22                 }
    23             }
    24             write.Close();
    25             write = null;
    26         }
    复制代码

    2、Timer设置代码:

    复制代码
     1 using Common;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.ComponentModel;
     5 using System.Data;
     6 using System.Diagnostics;
     7 using System.Linq;
     8 using System.ServiceProcess;
     9 using System.Text;
    10 using System.Threading;
    11 using System.Threading.Tasks;
    12 
    13 namespace WindowsServiceDB
    14 {
    15     public partial class Service1 : ServiceBase
    16     {
    17 
    18         System.Timers.Timer timer;  //计时器
    19         public Service1()
    20         {
    21             InitializeComponent();
    22         }
    23 
    24         protected override void OnStart(string[] args)
    25         {
    26             Thread thread = new Thread(delegate ()
    27             {
    28                 try
    29                 {
    30                     for (int i = 0; i < 10; i++)
    31                     {
    32                         //  Utils.WriteDBLogFile("——————————————Windowns服务的日志记录开始————————————————");
    33 
    34                         timer = new System.Timers.Timer();
    35                         timer.Interval = 3000;
    36                         timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Elapsed);
    37                         timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);      
    38                         timer.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;    
    39                         Utils.WriteDBLogFile("服务启动Time:" + DateTime.Now);
    40                     }
    41                 }
    42                 catch (Exception ex)
    43                 {
    44 
    45                     Utils.WriteDBLogFile("服务启动失败" + ex); ;
    46                 }
    47             });
    48             //Utils.WriteDBLogFile("——————————————Windowns服务的日志记录结束————————————————");
    49             thread.Name = "线程测试1";
    50             thread.IsBackground = true;
    51             thread.Start();
    52         }
    53 
    54         protected override void OnStop()
    55         {
    56             timer.Enabled = false;
    57             Utils.WriteDBLogFile("服务结束Time:" + DateTime.Now);
    58         }
    59 
    60         private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    61         {
    62             //执行操作
    63             Utils.WriteDBLogFile("服务开始记录Time:" + DateTime.Now);
    64 
    65         }
    66     }
    67 }
    复制代码

    四、总结:

  • 相关阅读:
    Scala刮:使用Intellij IDEA写hello world
    翻译器DIY它———算在英文文本中的单词数,字符和行数
    ZOJ3605-Find the Marble(可能性DP)
    我不需要你喜欢我
    thinkphp5的auth权限认证(转自thinkphp官方文档+自己总结)
    程序员中一些老的程序员去哪了
    信息学竞赛学习资料整理
    m_Orchestrate learning system---二十九、什么情况下用数据库做配置字段,什么情况下用配置文件做配置
    按键精灵使用心得
    thinkphp5中的配置如何使用
  • 原文地址:https://www.cnblogs.com/lidj/p/7290686.html
Copyright © 2011-2022 走看看