0

C#コードでWindowsサービスを1時間ごとに再起動したい。私はこの方法を持っていますが、プロジェクトのインストーラーまたはどこにあるのですか? 再起動したいのと同じサービスに入れることはできますか?

public static void RestartService(string serviceName, int timeoutMilliseconds)
{
    ServiceController service = new ServiceController(serviceName);

    try
    {
        int millisec1 = Environment.TickCount;
        TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

        service.Stop();
        service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);

        // count the rest of the timeout
        int millisec2 = Environment.TickCount;
        timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2 - millisec1));

        service.Start();
        service.WaitForStatus(ServiceControllerStatus.Running, timeout);
    }
    catch
    {
        // ...
    }
}
4

2 に答える 2

0

これを Windows スケジューラに追加できます。この機能を Windows コマンド プログラムに入れて、1 時間ごとに起動するようにスケジュールするだけです。また、最初のサービスのリサイクルを達成するために、2 番目のサービスを用意することもできます。

-rwg

于 2013-02-12T17:00:18.100 に答える