为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕桂英4014372 2023-08-20 11:05:15
我正在尝试使用 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窗口的控制。
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

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

start /B ConsoleApp.exe
查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信