我想知道如果我的窗口服务已经运行了大约30分钟,我可以强制重启或停止。
就像:
if(service.runs == 30 mins){
service.stop()
or
service.restart()
}
顺便说一下,我正在使用C#。我在这里使用一个线程。
这就是我的OnStart的样子:
Thread myThread;
protected override void OnStart(string[] args){
myThread = new Thread(new ThreadStart(this.myThreadFunction));
myThreadFunction.Start();
}
请帮忙。 感谢
答案 0 :(得分:1)
您需要在服务启动时运行计时器。并将其经过的事件设置为30分钟。如果已经过了,那么您可以应用上面的停止检查。当服务停止/重新启动时,您还需要重置计时器。
//somewhere in your class
System.Timer.Timer tmr = new System.Timers.Timer();
//on construct or start event
tmr.Interval = 1800000; //30 minutes = 60*1000*30
tmr.Elapsed -= new ElapsedEventHandler(OnTimedEvent);
tmr.Elapsed += new ElapsedEventHandler(OnTimedEvent);
tmr.Start();
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
tmr.Stop();
ServiceController service = new ServiceController(yourserviceName);
service.Stop();
// service.Start() uncomment this line if your want to restart
}
protected override void OnStop()
{
}