簡體   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