什么是ServiceBase.ServiceHandle?任何例子?

时间:2011-05-06 18:39:53

标签: c# windows-services

我正在一项服务中查看文件系统,以修改/添加/删除文件夹中的任何内容。当我开始实现它时,我在ServiceBaseServiceBase.ServiceHandle内遇到了这个属性。
这是用来做什么的? 我能用它做些什么? 我试过谷歌搜索,但发现只比MSDN网站告诉我的更多 有人知道一些例子或教程如何使用它吗?

感谢

1 个答案:

答案 0 :(得分:4)

ServiceBase.ServiceHandle是用于在“服务”控制面板中更新服务状态的系统句柄。它与Win32 RegisterServiceCtrlHandlerRegisterServiceCtrlHandlerEx函数返回的句柄相同。

所有服务都有责任更新其状态。在非托管服务中,例如在C ++中创建的服务,这是开发人员的责任。当状态发生变化时,您将把句柄和更新后的状态(例如,START_PENDING,RUNNING,STOPPED)作为输入传递给Win32 SetServiceStatus函数。

即使在托管服务中,例如使用C#创建的服务,开发人员仍然负责更新状态;只是ServiceBase类为您执行所有状态更新。

简而言之,我会说从继承自ServiceBase.

的托管服务完全没有这个句柄