1. 程式人生 > >C#建立windows服務搭配定時器Timer使用例項

C#建立windows服務搭配定時器Timer使用例項

 功能說明:C#建立一個windows服務,服務啟動時D:\mcWindowsService.txt寫入資料,服務執行期間每隔兩秒寫入當前時間。 

     原理這些就不說了,三語兩語說不清楚,直接貼一個例項。不能貼圖片!!那個壓縮文裡面是word文件!!有圖有真相 

1.建立空白專案 


2.新增建立windows服務需要的引用,選擇System.ServiceProcess。 


3.建立服務類,繼承ServiceBase,類的原始碼在後面。 


4. 新增windows服務的安裝類。 
(1)在類名或者解決方案中新建檢視: 

(2)上一步後會出來類的檢視,右鍵選擇檢視設計器: 

(3)在設計視圖裡面新增安裝器(有可能會彈出警告框,如圖,不用管): 



服務建立完成! 

安裝執行就不用說了吧!! 

6 服務類原始碼(): 
C#程式碼  收藏程式碼
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.IO;  
  4. using System.Linq;  
  5. using System.Text;  
  6. using System.Threading.Tasks;  
  7. using System.Timers;  
  8. namespace SR171  
  9. {  
  10.     class Service17: System.ServiceProcess.ServiceBase  
  11.     {  
  12.         public
     Service17()//可以自己設定  
  13.         {  
  14.             this.ServiceName = "MyServiceForShowTime";  
  15.             this.CanStop = true;  
  16.             this.CanPauseAndContinue = true;  
  17.             this.AutoLog = true;  
  18.             #region 定時器事件  
  19.             Timer aTimer = new Timer();       //System.Timers,不是form的
      
  20.             aTimer.Elapsed += new ElapsedEventHandler(TimedEvent);  
  21.             aTimer.Interval = 2 * 1000;    //配置檔案中配置的秒數  
  22.             aTimer.Enabled = true;  
  23.             #endregion  
  24.             }  
  25.         public static void Main()//必須寫  
  26.         {  
  27.             System.ServiceProcess.ServiceBase.Run(new Service17());  
  28.         }  
  29.         protected override void OnStart(string[] args)//自己根據要求覆寫  
  30.         {  
  31.             FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);  
  32.             StreamWriter m_streamWriter = new StreamWriter(fs);  
  33.             m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);  
  34.             m_streamWriter.WriteLine("mcWindowsService: Service Started" + DateTime.Now.ToString() + "\n");  
  35.             m_streamWriter.Flush();  
  36.             m_streamWriter.Close();  
  37.             fs.Close();  
  38.         }  
  39.         protected override void OnStop()  
  40.         {  
  41.             FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);  
  42.             StreamWriter m_streamWriter = new StreamWriter(fs);  
  43.             m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);  
  44.             m_streamWriter.WriteLine(" mcWindowsService: Service Stopped " + DateTime.Now.ToString() + "\n");  
  45.             m_streamWriter.Flush();  
  46.             m_streamWriter.Close();  
  47.             fs.Close();  
  48.         }  
  49.         private static void TimedEvent(object source, ElapsedEventArgs e)         //執行期間執行  
  50.         {  
  51.             FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);  
  52.             StreamWriter m_streamWriter = new StreamWriter(fs);  
  53.             m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);  
  54.             m_streamWriter.WriteLine("  Running.11.. " + DateTime.Now.ToString() + "\n");  
  55.             m_streamWriter.Flush();  
  56.             m_streamWriter.Close();  
  57.             fs.Close();  
  58.         }  
  59.     }  
  60. }