如何在后台启动进程并读取标准输出



我是 C# 的新手,我必须从我的 C# 程序开始一个非常耗时的过程,当然不会承受 ui 冻结的损失,我也想读取程序在 cmd 中打印的输出,最后我想要一个停止按钮,以便我可以随时关闭程序......

请帮忙..

尝试:

using System.Diagnostics;
void startProcess()
{
Process p = new Process();
p.StartInfo.FileName = "FileName";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
var output = p.StandardOutput.ReadToEnd();
}
MethodInvoker starter = new MethodInvoker(startProcess);
starter.BeginInvoke(null, null);

要结束该过程:

p.close()

使用类似这样的东西:

void StartProcess(){
Process p = new Process();
p.StartInfo.FileName = "yourfile.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
var readingThread = new System.Threading.Thread(() => {
while (!p.StandardOutput.EndOfStream){
Console.WriteLine(p.StandartOutput.ReadLine());
System.Threading.Thread.Sleep(1);
}
}
readingThread.Start();
}

相关内容

  • 没有找到相关文章

最新更新