繁体   English   中英

如何在后台运行 c# 控制台应用程序 .exe?

[英]How to run c# console application .exe in background?

我正在尝试使用 cmd 中的命令模拟数据库的更新,但我需要能够运行从 cmd 调用这些的 .exe 并继续使用相同的 cmd 窗口。

我试图隐藏 Process 将创建的窗口,这工作正常,但是当我运行 myFile.exe 时,它​​会挂起用于运行它的 cmd 窗口,直到进程完成。 这是一个问题,因为完成后我的代码将一次运行几个小时,我宁愿不打开一个死的 cmd 窗口来运行应用程序。

目前 ProcessWindowStyle.Hidden 是我用来调用命令并隐藏窗口的命令,该命令每半秒将我数据库中的第一个值设置为数字 0-25,但我无法使用 cmd 窗口,直到它达到 25 和退出应用程序。

static void Main(string[] args)
{ 
    int Number_Of_Args = args.Length;
    int[] Arguments = Check_Args(args, Number_Of_Args);
    Run_Command(Arguments);
}

public static void Run_Command(int[] Arguments)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";

    for (int i = 0; i <=25 ; i++)
    {
        startInfo.Arguments = "/C dbset 1 = " + i.ToString();
        process.StartInfo = startInfo;
        process.Start();
        Thread.Sleep(500);
    }
}

完成后,我需要 for 循环是一个 while 循环,它将不断更改数据库值,因此将其挂在 cmd 窗口中并不理想。 我的最终目标是能够使用“C:\\filelocation Simulation.exe arg1 arg2 arg3”从 cmd 调用我的应用程序,并让它开始运行和更新数据库,同时我在处理我当时使用 cmd 窗口的任何其他业务时.

编辑:我可以调用 Start Simulation.exe,它会打开一个新的 cmd 窗口并在新窗口中运行代码,让我控制原始窗口。 如果我可以让 Start Simulation.exe 隐藏新的 cmd 窗口,或者让代码默认启动一个新窗口,当简单地作为 Simulation.exe 调用时,这可能是我需要的,尽管两者都是最好的,如前所述,这样我就可以运行命令而不会失去对当前 cmd 窗口的控制。

我做了一些搜索,如果我理解正确,我认为你可以通过以下方式实现你想要的:

start /B ConsoleApp.exe

来源:
如何在后台执行 Windows 命令行?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM