[英]Executing MSBuild via C# using `Process.Start` fails with error but works if I try manually in the command line
[英]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# 程序,即使我使用完全相同的參數調用 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 時會發生完全相同的事情。
這是一個已知的錯誤還是我做錯了什么? 是否有解決方法(以不同的方式調用它,以便它可能不是子進程)?
打印時間是指軟件/驅動程序將文件發送到打印機所需的時間。
我非常感謝您的幫助!
嘗試使用進程優先級( 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.