【C#Windows 服務】 《三》Time設置
目錄:
1.【C#Windows 服務】 《一》初入門
2.【C#Windows 服務】 《二》INI配置文件
3.【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 }
四、總結:
記錄每一天的點滴,碼好每一行的代碼