您好,登錄后才能下訂單哦!
本篇內容主要講解“C#怎么創建Windows服務程序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#怎么創建Windows服務程序”吧!
C#創建Windows服務程序:
在介紹如何C#創建Windows服務程序以前,我先向大家介紹一下.Net框架下與Windows服務相關的命名空間和其中的類庫。.Net框架大大地簡化了Windows服務程序的創建和控制過程,這要歸功于其命名空間中的功能強大的類庫。和Windows服務程序相關的命名空間涉及到以下兩個:System.ServiceProcess和System.Diagnostics。
要創建一個最基本的C#創建Windows服務程序圖,我們只需要運用.Net框架下的System.ServiceProcess命名空間以及其中的四個類:ServiceBase、ServiceInstaller、ServiceProcessInstaller以及ServiceController,其體系結構可見C#創建Windows服務程序圖:
其中ServiceBase類定義了一些可被其子類重載的函數,通過這些重載的函數,服務控制管理器就可以控制該Windows服務程序了。這些函數包括:OnStart()、OnStop()、OnPause()以及OnContinue()等四個。而且ServiceBase類的子類還可以重載OnCustomCommand()函數來完成一些特定的操作。通過重載以上的一些函數,我們就完成了一個C#創建Windows服務程序的基本框架,這些函數的重載方法如下:
protected override void OnStart(string[] args) { } protected override void OnStop() { } protected override void OnPause() { } protected override void OnContinue() { }
ServiceBase類還為我們提供了一些屬性,而這些屬性是任何Widnows服務程序所必須的。其中的ServiceName屬性指定了Windows服務的名稱,通過該名稱系統就可以調用Windows服務了,同時其它應用程序也可以通過該名稱來調用它的服務。而CanPauseAndContinue和CanStop屬性顧名思義就是允許暫停并恢復和允許停止的意思。
要使得一個C#創建Windows服務程序能夠正常運行,我們需要像創建一般應用程序那樣為它創建一個程序的入口點。在Windows服務程序中,我們也是在Main()函數中完成這個操作的。首先我們在Main()函數中創建一個Windows服務的實例,該實例應該是ServiceBase類的某個子類的對象,然后我們調用由基類ServiceBase類定義的一個Run()方法。然而Run()方法并不就開始了C#創建Windows服務程序,我們必須通過前面提到的服務控制管理器調用特定的控制功能來完成Windows服務程序的啟動,也就是要等到該對象的OnStart()方法被調用時服務才真正開始運行。如果你想在一個Windows服務程序中同時啟動多個服務,那么只要在Main()函數中定義多個ServiceBae類的子類的實例對象就可以了,方法就是創建一個ServiceBase類的數組對象,使得其中的每個對象對應于某個我們已預先定義好的服務。
{ System.ServiceProcess.ServiceBase[] MyServices; MyServices = new System.ServiceProcess.ServiceBase[] { new Service1(), new Service2() }; System.ServiceProcess.ServiceBase.Run(MyServices); } static void Main()
到此,相信大家對“C#怎么創建Windows服務程序”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。