Console.ReadKey中断任何禁用服务输入的工作

时间:2015-02-10 15:47:16

标签: c# batch-file

我有一个用C#编写的控制台应用程序,其行为类似于服务。当我启动它时,它启动所有必要的后台线程,然后等待按键(通过Console.ReadKey())终止自身(和后台线程)。

我需要的是能够异步地从批处理文件(或命令行)运行(启动)此服务,而不会受到键盘输入(停止服务)的任何干扰。

我的第一个想法是使用start / b service.exe从后台Windows中的批处理文件启动此服务。这很有效,但在命令行窗口中,用于运行启动命令,如果按任意键,服务会立即拦截并停止。即使您使用暂停命令执行此异步启动调用,只要按任意键,服务就会停止。

所以我想通过start / b service.exe启动此服务来解决这个问题

所以我尝试编写自己的C#包装器,它将使用Process和ProcessStartInfo类重定向输入文件,希望它会有所不同。只要重定向输入,就会得到相同的异常。

我有什么方法可以阻止"到达此服务的所有输入?每当我运行批处理脚本时,我只是希望它在后台异步运行。它将通过运行不同的脚本来停止。我不能改变服务本身。我需要异步运行它的原因是因为我有很多这样的服务,批处理文件需要启动它们。

0 个答案:

没有答案