Приложение работает в фоновом режиме после "Process.Start". Как это исправить? - PullRequest
0 голосов
/ 28 марта 2020

У меня есть консольное приложение .NetCore 3.0, которое обычно запускается при нажатии на «App.exe».
Однако, когда я вызываю его через «Process.Start (» C: \ App \ App.exe ")", он работает в фоновом режиме.
Как это исправить?

private static void Init_App()
         {
            try
            {
                Process.Start("C:\\App\\App.exe");

            }
            catch (Exception e)
            {
                Console.WriteLine("Err - " + e.Message);
            }
         }

1 Ответ

0 голосов
/ 28 марта 2020

Я не уверен, в чем проблема, когда вы говорите, что он «работает в фоновом режиме».

Но если вы хотите запустить отдельный процесс, который продолжает работать, даже если вы закрываете первое приложение и что оно НЕ является потомком первого процесса ....

Тогда вы можете сделать что-то вроде этого:

    static void Main(string[] args)
    {
        var info = new ProcessStartInfo
        {
            UseShellExecute = true,
            FileName = @"C:\App\App.exe",//this app also needs a Console.ReadLine at the end of it's Main method.
            WindowStyle = ProcessWindowStyle.Normal
        };
        Process.Start(info);

        Console.ReadLine();
    }

Также помните, что консольные приложения закрываются очень быстро, если они выходят из метода Main. Поэтому в вашем App.exe добавьте Console.ReadLine в конце метода Main, чтобы он действительно оставался открытым. В противном случае он немедленно закроется.

Когда вы отлаживаете, Visual Studio сохраняет консольное приложение работающим, но это просто настройка в:

Инструменты-> Отладка-> Общие -> Автоматически закрывать консоль при отладке останавливается

Но когда приложение развертывается или вызывается из другого приложения, оно закрывается, как только метод Main завершен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...