C# 防止Windows服务退出

C# 防止Windows服务退出,c#,windows-services,C#,Windows Services,我正在创建一个windows服务(我的第一个),它使用计时器定期检查数据库,并在有任何排队的情况下转换视频文件。 但当我开始服务时,它就退出了,因为此时无事可做。 我该怎么做才能使服务处于一种空闲模式,保持运行?您可以这样做 OnStart() { while(!serviceNotStopped) { <do stuff, create threads > <Sleep if required> } <stop signal for

我正在创建一个windows服务(我的第一个),它使用计时器定期检查数据库,并在有任何排队的情况下转换视频文件。 但当我开始服务时,它就退出了,因为此时无事可做。
我该怎么做才能使服务处于一种空闲模式,保持运行?

您可以这样做

OnStart()
{
  while(!serviceNotStopped)
  {
   <do stuff, create threads >
    <Sleep if required>
  }

 <stop signal for all child thread if any >
}




 OnStop()
 {
  serviceNotStopped = true;
 }
OnStart()
{
而(!serviceNotStopped)
{
}
}
顶部()
{
serviceNotStopped=true;
}

好的
虽然(真的)
将是无限循环,但我的计时器永远不会被触发,我认为一定有更好的方法。可能的nope窗口复制不是答案,因为它在无事可做之前不会退出。即使无事可做,我也想让服务继续下去。我想你没有读过答案。检查数据库是“需要做的事情”,它是您的计时器事件。你只需要有一种方法来确保你的程序在下一个计时器事件被触发之前一直有效。这种方法是错误的。
OnStart
方法是来自服务控制管理器的回调函数,需要及时返回。通常,您会启动一个计时器或启动一个线程来完成服务的工作。