繁体   English   中英

使用 Process.Start() 从 C# 执行命令行程序最多慢 10 倍?

[英]Executing a command line program from C# with Process.Start() is up to 10 times slower?

当我使用命令行在我的 Windows 10 机器上打印文件时,它完成得非常快( 40 秒)。

我使用这个命令行调用:

AcroRd32.exe /t document1.pdf

使用 C# 程序,即使我使用完全相同的参数调用 Adob​​e Reader,打印同一个文件也需要长达8 分钟

var printProcess = Process.Start("AcroRd32.exe", "/T \"document1.pdf\"");

我还尝试了以下解决方法,但不幸的是,这也导致了性能下降。

System.Diagnostics.Process.Start("CMD.exe", "/C AcroRd32.exe /t document1.pdf");

我最初认为这可能是 Adob​​e Reader 的问题,但在使用 Foxit Reader 时会发生完全相同的事情。

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

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

我非常感谢您的帮助!

尝试使用进程优先级( 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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM