首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 建立 Windows 服務實作(二):服務邏輯、安裝元件與部署指令

     編輯:關於C語言

服務核心程式碼

public partial class CareEye : ServiceBase
{
    private Thread MainThread;
    public CareEye()
    {
        InitializeComponent();
        this.ServiceName = "CareEye";
        MainThread = new Thread(ThreadFunc);
    }

    protected override void OnStart(string[] args)
    {
        MainThread.Start();
    }

    protected override void OnStop()
    {
        MainThread.Abort();
    }

    public static void ThreadFunc()
    {
        int LastHour = DateTime.Now.Hour;
        while (true)
        {
            Thread.Sleep(60000); // 每分鐘檢查一次
            if (DateTime.Now.Hour - 1 == LastHour)
            {
                MessageBox.Show("為了愛護您的眼睛,請您暫時休息5分鐘並向遠處眺望!", "警告",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning,
                    MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
                LastHour = DateTime.Now.Hour;
            }
        }
    }
}

加入安裝元件

  1. 設計介面右鍵 → 「加入安裝程式」,產生 ProjectInstaller.cs,包含 serviceProcessInstaller1、serviceInstaller1。
  2. serviceProcessInstaller1.Account = LocalSystem。
  3. serviceInstaller1.Parent = serviceProcessInstaller1,設定 ServiceName 為服務顯示名稱。

建置與安裝

  1. 建置專案產生 W2.exe(取較短檔名者),複製到易存取路徑(如 F:\\)。
  2. 開啟命令提示字元,切換至 .NET Framework 目錄:
    cd C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727
  3. 安裝:InstallUtil f:\\W2.exe
  4. 解除安裝:InstallUtil f:\\W2.exe -u

啟動服務

開啟「服務」管理工具 (services.msc),找到「CareEye」啟動即可。

注意事項

  • 服務若需互動桌面(如彈出 MessageBox),需在 serviceProcessInstaller1 勾選「允許服務與桌面互動」或程式碼設定 MessageBoxOptions.DefaultDesktopOnly。
  • 生產環境建議使用 EventLog 記錄而非 MessageBox。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved