如何在Windows Server 2003&amp ;;中延迟我创建的服务? Windows XP?

时间:2014-02-25 22:10:38

标签: c# windows service windows-server-2003 windows-xp-sp3

我很多天前做了一个服务(WinServiceProject),我希望这个开始自动但是有一个延迟时间...我找到了一个解决方案,但这无法帮助我:http://support.microsoft.com/kb/193888/en-us

我在HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ WinServiceProject中修改了regedit,但这不起作用。

我添加了多字符串值(DependOnService)并在之前设置了许多服务......这可行,但不喜欢我想要的。

解决方案我需要它的时间,设置很多时间并在此之后执行服务。如果我需要为我的服务添加代码,我会这样做。

感谢。

1 个答案:

答案 0 :(得分:0)

我用这段代码解决了问题!!

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 - millisec1);

            service.Start();
            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
        }

        catch
        {
            // ...
        }

    }