最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#創(chuàng)建windows服務(wù)入門教程實(shí)例

 更新時(shí)間:2014年04月14日 09:53:20   作者:  
windows服務(wù)是windows系統(tǒng)中一類特殊的應(yīng)用程序,一般情況下它們只會(huì)在后臺(tái)運(yùn)行,不會(huì)影響前臺(tái)操作,非常適合做一些不需要用戶參與的而又需要長時(shí)間執(zhí)行的任務(wù)

用c#中創(chuàng)建一個(gè)windows服務(wù)非常簡單,與windows服務(wù)相關(guān)的類都在System.ServiceProcess命名空間下。

每個(gè)服務(wù)都需要繼承自ServiceBase類,并重寫相應(yīng)的啟動(dòng)、暫停、停止等方法。

windows服務(wù)的相關(guān)信息是存放與注冊表中的,所以他可以在不需要用戶登錄的情況下自動(dòng)運(yùn)行,在c#中你不需要再直接向注冊表中添加信息了,c#提供了服務(wù)安裝類 ServiceProcessInstaller和ServiceInstaller來實(shí)現(xiàn)服務(wù)的安裝。

首先,用vs創(chuàng)建一個(gè)windows服務(wù)項(xiàng)目

2014-02-13_095454

成功后你可以看到

2014-02-13_095922

Program中只包含服務(wù)運(yùn)行的相關(guān)信息

復(fù)制代碼 代碼如下:

/// <summary>
/// 應(yīng)用程序的主入口點(diǎn)。
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()//這里是一個(gè)數(shù)組,意味著我們可以在一個(gè)服務(wù)進(jìn)程中創(chuàng)建多個(gè)服務(wù)實(shí)例,只需要在這里加上即可
};
ServiceBase.Run(ServicesToRun);
}

Service1.cs就是我們需要的服務(wù)類,與windows服務(wù)相關(guān)的基本操作大都可以在這里找到,如:Start,Stop,Pause,Continue等,我們要做的就是根據(jù)這些操作做不同的處理就可以了。

我們先在服務(wù)Start和Stop時(shí)分別記錄一條信息到D盤

復(fù)制代碼 代碼如下:

protected override void OnStart(string[] args)
{
File.AppendAllText("d:" + this.GetType().Name + ".txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 服務(wù)啟動(dòng)"));
}
protected override void OnStop()
{
File.AppendAllText("d:" + this.GetType().Name + ".txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 服務(wù)停止"));
}

一個(gè)簡單的服務(wù)就完成了,下一步添加安裝信息

雙擊項(xiàng)目中的Service.cs轉(zhuǎn)到服務(wù)設(shè)計(jì)界面,在空白處右鍵選擇“添加安裝程序”

2014-02-13_100931

vs會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)名稱為ProjectInstaller.cs的文件并轉(zhuǎn)到相應(yīng)的設(shè)計(jì)界面

默認(rèn)添加兩個(gè)類 serviceProcessInstaller1和serviceInstaller1,第一個(gè)主要用來設(shè)置服務(wù)所屬賬戶,關(guān)系到服務(wù)的運(yùn)行,第二個(gè)是服務(wù)信息描述,如:服務(wù)名、是否自動(dòng)啟動(dòng)等

右鍵serviceProcessInstaller1屬性,將Account屬性選擇為LocalSystem

2014-02-13_101602

右鍵serviceInstaller1屬性,將StartType屬性設(shè)為Automatic(自動(dòng)啟動(dòng)),Description為“我的第一個(gè)windows服務(wù)”

全部保存后生成,找到生成的程序。

2014-02-13_101956

由于windows服務(wù)不能通過雙擊直接運(yùn)行,所以我們需要借助.net提供的InstallUtil.exe來安裝服務(wù)。

2014-02-13_102233

按回車開始安裝,成功后會(huì)提示 “提交”階段已成功完成,如果失敗則是“回滾”階段已成功完成

2014-02-13_102400

打開windows服務(wù)管理器就能看到我們安裝的服務(wù),默認(rèn)服務(wù)安裝成功后不會(huì)立刻啟動(dòng),需要我們手動(dòng)啟動(dòng)

2014-02-13_102549

如果不出意外,會(huì)顯示已啟動(dòng)

2014-02-13_102659

到D盤目錄下找到Service1.txt,打開會(huì)看到我們填入的信息,說明我們做的windows服務(wù)已經(jīng)成功了。

要卸載windows服務(wù)可以用InstallUtil.exe /u WindowsService1.exe來卸載或通過系統(tǒng)命令 sc delete 服務(wù)名來卸載。

相關(guān)文章

  • C#?守護(hù)進(jìn)程的介紹及實(shí)現(xiàn)詳解

    C#?守護(hù)進(jìn)程的介紹及實(shí)現(xiàn)詳解

    本文主要介紹了C#?守護(hù)進(jìn)程的介紹及實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Unity實(shí)現(xiàn)見縫插針小游戲

    Unity實(shí)現(xiàn)見縫插針小游戲

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)見縫插針小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 基于C#一個(gè)制作圖像的特寫窗口

    基于C#一個(gè)制作圖像的特寫窗口

    許多網(wǎng)站都會(huì)顯示一個(gè)特寫窗口,其中顯示放大的圖像部分,以便您可以看到更多細(xì)節(jié),本文將使用C#制作一個(gè)簡單的圖像的特寫窗口,感興趣的可以了解下
    2025-01-01
  • C#生成隨機(jī)驗(yàn)證碼代碼分享

    C#生成隨機(jī)驗(yàn)證碼代碼分享

    這篇文章主要分享了C#生成隨機(jī)驗(yàn)證碼代碼,另外附上使用示例,非常的簡單實(shí)用,有需要的朋友可以參考下
    2014-10-10
  • 基于C#實(shí)現(xiàn)宿舍管理系統(tǒng)

    基于C#實(shí)現(xiàn)宿舍管理系統(tǒng)

    這篇文章主要介紹了如何利用C#語言開發(fā)一個(gè)簡易的宿舍管理系統(tǒng),文中的實(shí)現(xiàn)步驟講解詳細(xì),對我們學(xué)習(xí)C#有一定參考價(jià)值,感興趣的可以了解一下
    2022-06-06
  • C#對集合進(jìn)行排序

    C#對集合進(jìn)行排序

    這篇文章介紹了C#對集合進(jìn)行排序的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#封裝的常用文件操作類實(shí)例

    C#封裝的常用文件操作類實(shí)例

    這篇文章主要介紹了C#封裝的常用文件操作類,實(shí)例分析了C#文件操作的技巧,涉及C#的讀寫、復(fù)制、刪除等常用操作,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • c# Async streams的使用解析

    c# Async streams的使用解析

    這篇文章主要介紹了c# Async streams的使用解析,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C# 實(shí)現(xiàn)Scoket心跳機(jī)制的方法

    C# 實(shí)現(xiàn)Scoket心跳機(jī)制的方法

    這篇文章主要介紹了C# 實(shí)現(xiàn)Scoket心跳機(jī)制的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C#中IEnumerable、ICollection、IList、List之間的區(qū)別

    C#中IEnumerable、ICollection、IList、List之間的區(qū)別

    IEnumerable、ICollection、IList、List之間的區(qū)別,本文分別分析了它的實(shí)現(xiàn)源碼,從而總結(jié)出了它們之間的關(guān)系和不同之處。對C# IEnumerable、ICollection、IList、List相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-07-07

最新評論

迁西县| 桐庐县| 肥东县| 和平县| 集贤县| 曲靖市| 鄯善县| 贵溪市| 潼南县| 阜宁县| 垫江县| 东兰县| 丰县| 阜阳市| 蒲江县| 石阡县| 黄大仙区| 黔西| 虎林市| 彩票| 沙湾县| 乌鲁木齐市| 栾川县| 新绛县| 方正县| 兴国县| 宁河县| 宜宾县| 蓬溪县| 虎林市| 修文县| 金川县| 韶关市| 景东| 嫩江县| 遂宁市| 阜城县| 长垣县| 乌拉特前旗| 汶川县| 察隅县|