【发布时间】:2023-04-08 07:30:01
【问题描述】:
我希望每隔一小时通过 C# 代码重新启动 Windows 服务。我有这个方法 但是当我在项目安装程序中还是在哪里?我可以把它放在我想重新启动它的同一个服务中吗?
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
{
// ...
}
}
【问题讨论】:
-
您是否正在尝试构建一个服务来监控另一个服务?或者您是否希望关闭相关服务,以便必须定期手动启动它?