【C#Windows 服務】 《三》Timer設置
阿新 • • 發佈:2017-08-05
domain edi system str current ash back model pro
一、工具:
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 }
四、總結:
【C#Windows 服務】 《三》Timer設置