2012-12-12 30 views
0

尝试创建与2012年VS默认情况下,Windows服务中,有3种方法的服务:如何捕获服务中的应用程序启动?

Constructor(say MyService) 
OnStart 
OnStop 

但是当我把一些代码在构造函数,看起来像只运行一次。

我想要的是:当一个应用程序从Windows启动,例如notepad.exe,我可以捕获它。 我应该在构造函数中放置一个死循环来监视进程列表吗?我认为服务应该总是像死循环一样。 所以当一个应用程序启动它时,如何在MyService中捕获它?

+0

什么是 “像一个死循环”?什么是“死循环”? – spender

+0

我认为他的意思是一个'while(true){}'循环...不确定.. – SynerCoder

回答

0

我应该在构造函数中放置一个死循环来监视进程列表吗?

不,那在OnStart()。基本伪代码:

  • 的OnStart:
    • 建立监督
    • 启动它
  • 监测:
    • ,而(真)监视进程
    • 如果(停止信号)出口
  • 调用OnStop
    • 给停止信号,监控对象
+0

在OnStart中放置一个无限循环并不是一个好主意,所以*不,在'OnStart'中出现*是误导。需要指出的是,在'OnStart'中启动的监控异步*工作,以便服务不断接收命令! –

+0

谢谢。应用程序启动时可以捕获什么信号?在哪里进行监测?把代码放在构造函数和OnStart中有什么区别? – KentZhou

相关问题