簡體   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