偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#創(chuàng)建Windows服務(wù)程序淺析

開發(fā) 后端
C#創(chuàng)建Windows服務(wù)是如何實(shí)現(xiàn)的呢?C#創(chuàng)建Windows服務(wù)有什么需要注意的地方呢?那么以下的敘述就向你解答這些問題。

C#創(chuàng)建Windows服務(wù)程序:

在介紹如何C#創(chuàng)建Windows服務(wù)程序以前,我先向大家介紹一下.Net框架下與Windows服務(wù)相關(guān)的命名空間和其中的類庫。.Net框架大大地簡化了Windows服務(wù)程序的創(chuàng)建和控制過程,這要?dú)w功于其命名空間中的功能強(qiáng)大的類庫。和Windows服務(wù)程序相關(guān)的命名空間涉及到以下兩個(gè):System.ServiceProcess和System.Diagnostics。

要?jiǎng)?chuàng)建一個(gè)最基本的C#創(chuàng)建Windows服務(wù)程序圖,我們只需要運(yùn)用.Net框架下的System.ServiceProcess命名空間以及其中的四個(gè)類:ServiceBase、ServiceInstaller、ServiceProcessInstaller以及ServiceController,其體系結(jié)構(gòu)可見C#創(chuàng)建Windows服務(wù)程序圖:

C#創(chuàng)建Windows服務(wù)程序圖 

其中ServiceBase類定義了一些可被其子類重載的函數(shù),通過這些重載的函數(shù),服務(wù)控制管理器就可以控制該Windows服務(wù)程序了。這些函數(shù)包括:OnStart()、OnStop()、OnPause()以及OnContinue()等四個(gè)。而且ServiceBase類的子類還可以重載OnCustomCommand()函數(shù)來完成一些特定的操作。通過重載以上的一些函數(shù),我們就完成了一個(gè)C#創(chuàng)建Windows服務(wù)程序的基本框架,這些函數(shù)的重載方法如下:

  1. protected override void OnStart(string[] args)  
  2.  
  3. {  
  4.  
  5. }  
  6.  
  7. protected override void OnStop()  
  8.  
  9. {  
  10.  
  11. }  
  12.  
  13. protected override void OnPause()  
  14.  
  15. {  
  16.  
  17. }  
  18.  
  19. protected override void OnContinue()  
  20.  
  21. {  
  22.  

ServiceBase類還為我們提供了一些屬性,而這些屬性是任何Widnows服務(wù)程序所必須的。其中的ServiceName屬性指定了Windows服務(wù)的名稱,通過該名稱系統(tǒng)就可以調(diào)用Windows服務(wù)了,同時(shí)其它應(yīng)用程序也可以通過該名稱來調(diào)用它的服務(wù)。而CanPauseAndContinue和CanStop屬性顧名思義就是允許暫停并恢復(fù)和允許停止的意思。

要使得一個(gè)C#創(chuàng)建Windows服務(wù)程序能夠正常運(yùn)行,我們需要像創(chuàng)建一般應(yīng)用程序那樣為它創(chuàng)建一個(gè)程序的入口點(diǎn)。在Windows服務(wù)程序中,我們也是在Main()函數(shù)中完成這個(gè)操作的。首先我們在Main()函數(shù)中創(chuàng)建一個(gè)Windows服務(wù)的實(shí)例,該實(shí)例應(yīng)該是ServiceBase類的某個(gè)子類的對象,然后我們調(diào)用由基類ServiceBase類定義的一個(gè)Run()方法。然而Run()方法并不就開始了C#創(chuàng)建Windows服務(wù)程序,我們必須通過前面提到的服務(wù)控制管理器調(diào)用特定的控制功能來完成Windows服務(wù)程序的啟動,也就是要等到該對象的OnStart()方法被調(diào)用時(shí)服務(wù)才真正開始運(yùn)行。如果你想在一個(gè)Windows服務(wù)程序中同時(shí)啟動多個(gè)服務(wù),那么只要在Main()函數(shù)中定義多個(gè)ServiceBae類的子類的實(shí)例對象就可以了,方法就是創(chuàng)建一個(gè)ServiceBase類的數(shù)組對象,使得其中的每個(gè)對象對應(yīng)于某個(gè)我們已預(yù)先定義好的服務(wù)。

  1. {  
  2.  
  3. System.ServiceProcess.ServiceBase[] MyServices;  
  4.  
  5. MyServices = new   
  6.  
  7. System.ServiceProcess.ServiceBase[] {  
  8.  
  9.  new Service1(), new Service2() };  
  10.  
  11. System.ServiceProcess.ServiceBase.Run(MyServices);  
  12.  
  13. }  
  14.  
  15. static void Main()  

C#創(chuàng)建Windows服務(wù)程序的相關(guān)就向你介紹到這里,希望對你了解和學(xué)習(xí)C#創(chuàng)建Windows服務(wù)程序有所幫助。

【編輯推薦】

  1. 學(xué)習(xí)C#構(gòu)造函數(shù)的一點(diǎn)體會
  2. C#復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)實(shí)例淺析
  3. C#允許服務(wù)與桌面交互實(shí)現(xiàn)淺析
  4. C#windows服務(wù)中的Timer控件的使用
  5. C#Windows服務(wù)介紹
責(zé)任編輯:仲衡 來源: vchome.net
相關(guān)推薦

2009-08-25 09:39:21

創(chuàng)建C# Window

2009-08-14 16:41:22

C#啟動Windows

2009-08-14 16:02:50

C#啟動windows

2009-08-14 14:25:09

Windows服務(wù)程序

2009-08-14 15:47:18

C#Windows服務(wù)

2009-08-14 15:06:08

Windows服務(wù)程序

2009-08-14 15:19:38

Windows服務(wù)程序Windows服務(wù)

2009-09-02 17:28:26

C#程序設(shè)計(jì)Windows窗體

2009-08-27 17:31:44

C#創(chuàng)建Windows

2009-08-14 14:17:16

C#Windows服務(wù)

2009-08-14 17:04:19

Windows后臺服務(wù)

2009-08-28 16:03:15

C#程序?qū)崿F(xiàn)鼠標(biāo)移動

2024-07-09 17:09:49

C#開發(fā)Windows窗體

2009-08-19 15:47:09

C#操作Access

2009-08-18 14:25:05

C# 操作Excel

2009-09-02 17:53:42

C#程序設(shè)計(jì)Windows窗體

2011-06-03 10:15:13

2009-09-07 14:52:01

C# HTTP Req

2009-09-07 14:00:57

C#抓取網(wǎng)頁

2009-08-07 17:25:37

C# SortedLi
點(diǎn)贊
收藏

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