我应该在Windows服务中调用基类的方法吗?

时间:2012-09-18 14:37:48

标签: c# .net service windows-services

ServiceBase派生时,我是否也应该调用基类的方法?

protected override void OnStart(string[] args)
{
    //
    // The stuff I do when the service starts.
    //

    base.OnStart(args); // Do I need to call this?
}

3 个答案:

答案 0 :(得分:17)

简短的回答是肯定的,你应该。

在这种特定情况下,OnStart方法的基本实现没有做任何重要的事情,但这是一个可能随时改变的实现细节。作为一般惯例,除非你有充分的理由不这样做,否则你应该总是调用基本方法。

答案 1 :(得分:5)

如果您使用ILSpy或类似程序对服务基础进行反编译,您会看到,OnStart,OnStop等不执行任何操作(至少在.NET 4.0 / 4.5中)。

但是这种行为可能会改变一段时间,因此如果你不调用它,那么在将来的.NET版本中可能会出现不必要或不可预测的行为。
我认为调用那些base.OnEvent() - 方法。

是一个好习惯

答案 2 :(得分:-1)

当我写服务时,我认为我从未打过base.OnStart。

但是,如果你 ,总是让基类调用你方法的第一行行,不是最后一行!

相关问题