微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Process Start中的C#无头铬无法正常工作

如何解决Process Start中的C#无头铬无法正常工作

我需要从网络核心控制台应用程序调用无头Chrome。但是,使用此代码,应用程序就会运行并且卡住了,什么也不做,没有打印任何内容,也没有创建pdf。终端中的相同参数按预期工作。

public static bool TakeScreenshot2()
        {
            try
            {
                var procStartInfo = new processstartinfo()
                {
                    FileName = "google-chrome",Arguments = "--headless --disable-gpu --print-to-pdf=final.pdf http://www.google.com/",RedirectStandardOutput = true,RedirectStandardError = true,UseShellExecute = false,CreateNowindow = true
                };

                var proc = new Process { StartInfo = procStartInfo };
                proc.Start();

                var output = proc.StandardOutput.ReadToEnd();
                Console.WriteLine(output);
                string error = proc.StandardError.ReadToEnd();
                Console.WriteLine(error);

                return proc.ExitCode == decimal.Zero ? true : false;
            }
            finally
            {
                // do something
            }
        }

解决方法

您应该等待该过程完成

var proc = new Process { StartInfo = procStartInfo };
proc.Start();
proc.WaitForExit();

proc.ExitCode退出后,您也可以检查它是否成功

如果您不想阻塞线程单元完成操作,则可以使用它,您的功能需要异步

await Task.Run(() => proc.WaitForExit());

或使用Process事件Exited

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。