process.WaitForExit () не ожидает в Mac OS X - ASP.NET Core 2.2 - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть ASP.NET Core 2.2 приложение. Когда я вызываю приведенный ниже метод тестирования (из браузера Chrome) на основе типа ОС, открывается новый экземпляр браузера Chrome Incognito .

В Windows и Linux (работает в Virtual Box) process.WaitForExit() ожидает закрытия браузера Chrome Incognito .

Но в Mac OS X (запущенной в Virtual Box) process.WaitForExit() не ждет. Он сразу вызывается после process.Start().

Как убедиться, что процесс ожидает закрытия браузера?

public IActionResult Test()
    {
        string fileName = "";
        string arguments = "";

        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
        {
            fileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
            arguments = @"-incognito --user-data-dir=""C:\Users\bala_sakthis\AppData\Local\Temp\ChromeData"" data:,";                
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
        {
            fileName = "google-chrome";
            arguments = @"-incognito --user-data-dir=""/home/osboxes/ChromeData"" data:,";                
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
        {
            fileName = "open";
            arguments = @"-a ""Google Chrome"" -n --args --incognito --user-data-dir=""/Users/bala/ChromeData"" data:,";
        }

        var process = new Process();
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.FileName = fileName;
        process.StartInfo.Arguments = arguments;

        using (process)
        {
            try
            {
                process.Start();

                process.WaitForExit();

                Console.WriteLine("Process exited...");
                Console.WriteLine(process.HasExited);
            }
            catch (Exception exp)
            {
                Console.WriteLine(exp);
            }
        }

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