自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何編寫C# Windows服務(wù)

開發(fā) 后端
本文從新建windows service工程開始,通過8個(gè)步驟完成了c# windows服務(wù)程序的編寫,供大家參考。

1、新建C# Windows服務(wù):windows service工程

 新建windows service工程

2、新建windows service工程后,系統(tǒng)自動(dòng)生成一個(gè)Service1.cs文件,默認(rèn)是其設(shè)計(jì)視圖。選擇查看其代碼,默認(rèn)有構(gòu)造函數(shù)、OnStart、OnStop三個(gè)函數(shù),如下圖所示:

 設(shè)計(jì)視圖 

 3、新建了C# Windows服務(wù)之后,還要設(shè)置該服務(wù)運(yùn)行的周期,左側(cè)的ToolBox中有兩個(gè)timmer,一個(gè)在組件下,一個(gè)在windows form下,可惜這兩個(gè)都不能用,我們要手工新建一個(gè)timmer,并設(shè)置其屬性和事件。

  1. public WindowsServiceDemo()   
  2.         {   
  3.             InitializeComponent();   
  4.             System.Timers.Timer t = new System.Timers.Timer(1000);//實(shí)例化Timer類,設(shè)置間隔時(shí)間為10000毫秒;    
  5.             t.Elapsed += new System.Timers.ElapsedEventHandler(TimeElapse);//到達(dá)時(shí)間的時(shí)候執(zhí)行事件;    
  6.             t.AutoReset = true;//設(shè)置是執(zhí)行一次(false)還是一直執(zhí)行(true);    
  7.             t.Enabled = true;//是否執(zhí)行System.Timers.Timer.Elapsed事件;   
  8.         }   
  9.  
  10.  
  11. public void TimeElapse(object source, System.Timers.ElapsedEventArgs e)   
  12.         {   
  13.             //EventLog log = new EventLog();   
  14.             //log.Source = "我的應(yīng)用程序";   
  15.             //log.WriteEntry("1秒調(diào)用一次", EventLogEntryType.Information);   
  16.             FileStream fs = new FileStream(@"d:\timetick.txt", FileMode.OpenOrCreate, FileAccess.Write);   
  17.             StreamWriter m_streamWriter = new StreamWriter(fs);   
  18.             m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);   
  19.             m_streamWriter.WriteLine("過了一秒 " + DateTime.Now.ToString() + "\n");   
  20.             m_streamWriter.Flush();   
  21.             m_streamWriter.Close();   
  22.             fs.Close();   
  23.     
  24.         }  

4、服務(wù)編寫之后,還不能由SCM(服務(wù)控制管理器)進(jìn)行管理,需要給該服務(wù)添加裝載器。在Service1.cs的設(shè)計(jì)視圖,點(diǎn)擊右鍵,選擇“添加裝載器”,系統(tǒng)默認(rèn)就會(huì)添加ProjectInstaller.cs這個(gè)類。

Service1.cs的設(shè)計(jì)視圖  

5、添加該類后,在該類的設(shè)計(jì)視圖上可看到serviceInstaller1和serviceProcessInstaller1,分別設(shè)置其屬性。

設(shè)置serviceInstaller1的運(yùn)行方式為手動(dòng)或者自動(dòng)

設(shè)置serviceInstaller1的ServiceName,設(shè)置為什么,服務(wù)列表中就顯示什么

設(shè)置serviceProcessInstaller1的運(yùn)行賬號(hào)為L(zhǎng)ocalSystem

6、編譯該工程

7、使用vs自帶的命令行工具,運(yùn)行installutil 編譯生成的exe

8、在系統(tǒng)的服務(wù)中可看到我們創(chuàng)建的服務(wù)。

需要注意的是:

如果你修改了這個(gè)服務(wù),路徑?jīng)]有變化的話是不需要重新注冊(cè)服務(wù)的,如果路徑發(fā)生了變化,需要先卸載這個(gè)服務(wù)InstallUtil.exe /u參數(shù),然后再重新安裝這個(gè)服務(wù),不能直接安裝。還有就是C# Windows服務(wù)是沒有界面的,不要企圖用控制的輸出方式來(lái)輸出一些信息,你只能添加一個(gè)EventLog,通過WriteEntry()來(lái)寫日志。

【編輯推薦】

  1. 四種C#參數(shù)類型簡(jiǎn)介
  2. Java與C#的不同之處
  3. 學(xué)習(xí)C#程序集
  4. C#和ADO.NET建立數(shù)據(jù)綁定網(wǎng)格
  5. 介紹C# 4.0新特性dynamic
責(zé)任編輯:book05 來(lái)源: cnblogs
相關(guān)推薦

2020-09-15 09:23:19

C++WindowsC#

2009-08-07 16:43:44

C#調(diào)用Windows

2011-05-17 14:53:35

C

2009-08-14 15:06:08

Windows服務(wù)程序

2009-08-27 17:31:44

C#創(chuàng)建Windows

2009-08-14 11:00:16

C#創(chuàng)建Windows

2024-07-09 17:09:49

C#開發(fā)Windows窗體

2009-08-14 16:02:50

C#啟動(dòng)windows

2009-08-18 17:08:50

C#編寫XML文檔

2009-08-25 13:26:49

C#編寫asp+

2009-08-06 16:58:40

C#編寫ActiveX

2009-08-18 16:31:19

Visual C#編寫

2009-08-28 15:05:35

C#編寫Calenda

2009-08-12 18:04:44

編寫C#多線程

2009-08-14 16:32:50

C#啟動(dòng)Windows

2009-08-14 16:41:22

C#啟動(dòng)Windows

2009-09-03 16:20:14

C#調(diào)用Windows

2021-03-13 11:04:11

服務(wù)器C#Windows

2009-08-14 10:35:25

C#最小化編寫

2009-08-31 15:39:11

C#編寫操作TreeV
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)