gpt4 book ai didi

c# - 出错后如何停止服务?

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:38 25 4
gpt4 key购买 nike

我需要优雅地处理代码中的错误并停止服务。

protected override void OnStart(string[] args)
{

oMyObject = new MyObject(args);
if (oMyObject.RunStartup())
{

oThread = new Thread(new ThreadStart(oMyObject.MainLoop));
oThread.Start();

}

base.OnStart(args);

}

oMyObject.RunStartup() 将错误写入事件日志,如果出错则返回 false。

但是,服务没有停止,事件日志显示“服务已成功启动”。

如何在 OnStart() 中退出和停止服务而不显示“服务已成功启动”的事件日志?

最佳答案

您是否尝试过实现 OnStop() 方法而不是尝试在 OnStart() 方法中检测停止?

然后您应该能够创建一个 ServiceController 实例并检查服务的 Status 属性。

编辑:抱歉,这是对@Lloyd 回答的扩展(无法发表评论)。


更新:

实际上,只要在 OnStart() 中添加一个 Try Catch block 就足以捕获异常(请参阅@Oded对 OP 发表评论)并允许您关闭服务并以您认为合适的方式记录到事件日志。

关于c# - 出错后如何停止服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473196/

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