我在C#上有一个WPF应用程序,我需要执行一个从不存在的系统命令(因为它等待你按Q
)。我想在第一次收到输出后强行退出它并且我也不想阻止WPF UI,所以我想异步地执行此操作(我相信线程会使事情变得更复杂)。
这就是我现在所拥有的:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C " + command;
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
上面的代码有两个问题:它阻止了UI,它永远不会得到输出(进程不会退出)。
注意:我使用了WaitForExit()
,因为在继续之前我需要输出。
答案 0 :(得分:1)