Visual studio 2010 Windows服务不支持';t停止';启动';

Visual studio 2010 Windows服务不支持';t停止';启动';,visual-studio-2010,service,Visual Studio 2010,Service,我已经创建了一个服务和一个安装程序。我已经在计算机上安装了我的服务。在服务屏幕中,我可以看到服务正在启动。它不会停止启动,我不能暂停,什么都没有。我唯一能做的就是安装 我尝试将VisualStudio附加到进程中,但实际上什么都没有发生。如何调试此服务?我想知道发生了什么。如果处理程序中运行的代码太多/太多,通常会发生这种情况-您需要在处理程序中启动代码,然后返回。只有当您返回时,您的服务才被视为已启动 您通常会创建一个或多个新的,始终运行您想要运行的代码的,然后返回。或者创建隐式运行自己线程的

我已经创建了一个服务和一个安装程序。我已经在计算机上安装了我的服务。在服务屏幕中,我可以看到服务正在启动。它不会停止启动,我不能暂停,什么都没有。我唯一能做的就是安装


我尝试将VisualStudio附加到进程中,但实际上什么都没有发生。如何调试此服务?我想知道发生了什么。

如果处理程序中运行的代码太多/太多,通常会发生这种情况-您需要在处理程序中启动代码,然后返回。只有当您返回时,您的服务才被视为已启动

您通常会创建一个或多个新的,始终运行您想要运行的代码的,然后返回。或者创建隐式运行自己线程的对象(例如WCF)

然后,你的工作就是优雅地关闭它们——例如a,然后在这些线程上

e、 g您的类可能看起来像这样(未测试)

公共类MyService:ServiceBase{
private ManualResetEvent _stop=新的ManualResetEvent(错误);
私人线程(worker),;
公共覆盖void OnStart(字符串[]args){
_工作线程=新线程(DoStuff);
_worker.Start();
}
公共覆盖void OnStop(){
_stop.Set();
_worker.Join();
}
私人无效文件(){
而(!\u停止。等待一(0)){
//在这里做些有用的事情。
}
}
}

如果您的
OnStart
处理程序中运行了太多/所有的代码,则通常会发生这种情况-您需要在那里启动一些东西,然后返回。只有当您返回时,您的服务才被视为已启动。我如何返回?