【问题标题】:Service is stopped but process remains for a minute服务已停止,但进程保持一分钟
【发布时间】:2011-08-13 15:44:18
【问题描述】:

我有一个复杂的应用程序,它可以作为 Windows 服务和控制台应用程序运行。

我主要使用控制台启动进行调试。当我在控制台按 Ctrl+C 时,应用程序立即停止(进程结束)。

当我将应用程序作为服务运行并选择停止它时,MMC 立即表示该服务已停止。但是,该过程仍在运行,大约需要一分钟才能停止。我不介意花时间,但我想让 MMC 像其他服务一样等待。目前我可以在旧进程仍在运行时再次启动服务,这会产生独占资源的错误。 MMC 中的“重新启动”也不起作用,因为它不等待进程结束。

如何让我的进程等待或如何找出哪些线程/进程/方法需要时间?

【问题讨论】:

    标签: c# .net service windows-services


    【解决方案1】:

    对于 .Net 服务,请参阅:How to properly stop a multi-threaded .NET windows service?

    有关使用 WCF 的服务,另请参阅:http://msdn.microsoft.com/en-us/library/ms734781(VS.85).aspx

    【讨论】:

    • 非常有用的链接。我很惊讶我找不到它们。我尝试了第一个链接中的信息,并在我能够验证它是否有效后接受答案。
    • 是的,它奏效了。处理 OnStop() 中所有线程的停止为我做了这件事——就像在第一个关于 .NET 服务的链接中提出的那样。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多