使用Process.Start()从C#执行命令行程序的速度要慢10倍?

使用Process.Start()从C#执行命令行程序的速度要慢10倍?,c#,.net,adobe-reader,foxit-reader,C#,.net,Adobe Reader,Foxit Reader,当我在Windows 10计算机上使用命令行打印文件时,它会很快完成(40秒) 我使用以下命令行调用: AcroRd32.exe /t document1.pdf 使用C#程序,即使我用完全相同的参数调用Adobe Reader,打印同一个文件也要花费8分钟 var printProcess = Process.Start("AcroRd32.exe", "/T \"document1.pdf\""); 我还尝试了以下解决方法,不幸的是,这也导致了性能下降 System.Diagnostic

当我在Windows 10计算机上使用命令行打印文件时,它会很快完成(40秒)

我使用以下命令行调用:

AcroRd32.exe /t document1.pdf
使用C#程序,即使我用完全相同的参数调用Adobe Reader,打印同一个文件也要花费8分钟

var printProcess = Process.Start("AcroRd32.exe", "/T \"document1.pdf\"");
我还尝试了以下解决方法,不幸的是,这也导致了性能下降

System.Diagnostics.Process.Start("CMD.exe", "/C AcroRd32.exe /t document1.pdf");
我原本以为这可能是Adobe Reader的问题,但使用Foxit Reader时也会发生同样的情况

这是一个已知的bug还是我做了一些完全错误的事情?是否有解决方法(以不同的方式调用它,以便它可能不是子进程)

我所说的打印时间是指软件/驱动程序将文件发送到打印机所需的时间


我非常感谢你的帮助

尝试使用进程优先级(
PriorityClass
属性):


尝试使用进程优先级(
PriorityClass
property):


FWIW必须在流程启动后设置
PriorityClass
。FWIW必须在流程启动后设置
PriorityClass
using (Process process = new Process())
{
    process.StartInfo.FileName = "AcroRd32.exe";
    process.StartInfo.Arguments = "/T \"document1.pdf\"";
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = false;

    process.PriorityClass = ProcessPriorityClass.AboveNormal;

    process.Start();
}