gpt4 book ai didi

c# - 当使用 WebRole.cs 运行 "OnStart()"中的自定义代码时,推荐的调用 base.OnStart() 的方法是什么?

转载 作者:行者123 更新时间:2023-11-30 20:45:54 24 4
gpt4 key购买 nike

使用WebRole.cs配置IIS时,建议调用base.OnStart()的方式是什么?

public class WebRole : Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint
{
public override bool OnStart()
{
RunMyCode();
return base.OnStart();
}
}

public class WebRole : Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint
{
public override bool OnStart()
{
var result = base.OnStart();
if (result == true) { RunMyCode(); }
return result;
}
}

换句话说,“考虑基类的返回值有意义吗?”。

我(我认为)经历过这样的行为,有时基函数必须返回 false 并且我的代码从未被调用。

最佳答案

根据official documentation,base.OnStart 的调用是该方法的最后一条语句。这些方法仅作为 API 提供。 RoleEntryPoint 是一个抽象类,具有默认的单行实现(或根本没有实现)。另请参阅same documentation ,你会看到如果返回False,你的角色实例将被停止(从而导致角色回收而无法启动)。每个文档的最后一个:

In general, you should avoid returning false from the OnStart method.

如果您查看(使用您选择的 .NET 反编译器)RoleEntryPoint 的源代码,您会发现 OnStart 的默认实现仅返回 true:

using System.Threading;

namespace Microsoft.WindowsAzure.ServiceRuntime
{
public abstract class RoleEntryPoint
{
public virtual bool OnStart()
{
return true;
}

public virtual void Run()
{
Thread.Sleep(-1);
}

public virtual void OnStop()
{
}
}
}

它带有v.2.4的SDK。从早期的 1.xx 版本开始就是这样。

关于c# - 当使用 WebRole.cs 运行 "OnStart()"中的自定义代码时,推荐的调用 base.OnStart() 的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27599264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com