我需要让我的控制台应用程序在后台运行。互联网上有一些关于如何实现这一点的提示。
最快的提示是将项目类型更改为 Windows 应用程序。
我试过了,是的,它确实使控制台窗口消失了,但是有一个问题。我的应用程序使用一个计时器来处理每一x
秒,因此在Main
函数结束时,我放置了一个Console.ReadLine
以防止应用程序停止。但是通过将项目类型切换为 Windows 窗体应用程序,Console.ReadLine
不会再阻止应用程序完成。
所以我必须使用名为 ShowWindow() 的 Windows 32 API 函数来隐藏控制台窗口。
我的问题是,如果我坚持将项目类型更改为 的选项Windows Form Application
,我需要什么才能让它保持活力?
好吧,您可以使用https://github.com/Topshelf/Topshelf,这允许将其作为控制台应用程序和 Windows 服务运行。Windows 服务确实是做你想做的事情的理想方式,但是调试 Windows 服务是一种痛苦。Topshelf 通过让您作为控制台应用程序运行和调试来简化这一过程,然后在准备就绪后,您可以通过命令行将您的应用程序自注册为服务。
但是,你可以去 Thread.Sleep(Timeout.Infinite)
或者设置一个需要触发的事件并等待该事件,这样您的代码可以根据需要退出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句