我在一个服务中工作,该服务监视文件系统以修改/添加/删除文件夹内的任何内容。当我开始实现它时,我在 ServiceBaseServiceBase.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/

10-14 02:38