我在一个服务中工作,该服务监视文件系统以修改/添加/删除文件夹内的任何内容。当我开始实现它时,我在 ServiceBase
类 ServiceBase.ServiceHandle
中遇到了这个属性。
这是做什么用的?
我可以用它实现什么?
我试着在谷歌上搜索它,但发现比 MSDN 站点已经告诉我的更多。
有人知道一些示例或教程如何使用它吗?
谢谢
最佳答案
ServiceBase.ServiceHandle
是用于更新服务控制面板中服务状态的系统句柄。它与 Win32 RegisterServiceCtrlHandler
和 RegisterServiceCtrlHandlerEx
函数返回的句柄相同。
所有服务都有责任更新其状态。在非托管服务中,例如在 C++ 中创建的服务,这是开发人员的责任。当状态更改时,您将句柄和更新的状态(例如,START_PENDING、RUNNING、STOPPED)作为输入传递给 Win32 SetServiceStatus
函数。
即使在托管服务中,例如使用 C# 创建的服务,开发人员仍然负责更新状态;只是 ServiceBase
类为您执行所有状态更新。
简而言之,我会说这个句柄对于继承自 ServiceBase.
的托管服务是完全没有必要的
关于c# - 什么是 ServiceBase.ServiceHandle?有什么例子吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5915658/