从 派生时ServiceBase
,我也应该调用基类的方法吗?
protected override void OnStart(string[] args)
{
//
// The stuff I do when the service starts.
//
base.OnStart(args); // Do I need to call this?
}
从 派生时ServiceBase
,我也应该调用基类的方法吗?
protected override void OnStart(string[] args)
{
//
// The stuff I do when the service starts.
//
base.OnStart(args); // Do I need to call this?
}
简短的回答是肯定的,你应该。
在这种特定情况下,OnStart 方法的基本实现没有做任何重要的事情,但这是一个随时可能更改的实现细节。作为一般做法,您应该始终调用基本方法,除非您有充分的理由不这样做。
如果您使用 ILSpy 或类似工具反编译服务库,您将看到 OnStart、OnStop 等什么都不做(至少在 .NET 4.0/4.5 中)。
但是这种行为可能会在一段时间内改变,因此如果您不调用它,在未来的 .NET 版本中可能会出现不需要或无法预料的行为。
我认为调用这些 base.OnEvent()-Methods 是一个好习惯。
我认为我在编写服务时从未调用过 base.OnStart。
但是,如果您这样做,请始终让基类调用您方法的第一行,而不是最后一行!