C#控制台应用程序 - 保持运行

12 console-application keep-alive

我即将开发一个控制台应用程序,需要在特定时间连续运行和执行工作.

我的问题是保持应用程序存活的最佳方法或实践是什么?

我的想法是:一个永无止境的循环?一个计时器,在需要时(在设定的睡眠期后)睡觉,然后跳到常规?

我将把应用程序编译成exe,然后使用AlwaysUp将其作为服务运行.

问候..

彼得

小智 14

一个更好的解决方案是编写一个完成其工作并退出的控制台应用程序.然后,您可以使用Windows任务计划程序定期运行它.

  • 绝对同意!Jon Galloway不久前写了一篇博文,说服我做错了是通过提供服务而不是任务来做错的:http://weblogs.asp.net/jgalloway/archive/2005/10/24/428303.aspx (2认同)

Chr*_*Rea 8

为什么不首先将您的应用程序构建为服务?


Pho*_*cUK 5

虽然您确实应该为此使用服务,但如果您需要/想要这样做,您可以使用 aManualResetEvent来执行此操作:

private ManualResetEvent Wait = new ManualResetEvent(false);
Run Code Online (Sandbox Code Playgroud)

当您完成“开始”并想等待时,您可以执行以下操作:

Wait.WaitOne();
Run Code Online (Sandbox Code Playgroud)

当您想停止并让它退出时,您可以执行以下操作:

Wait.Set();
Run Code Online (Sandbox Code Playgroud)