[英]Display message while waiting for a process to end
我有一个控制台应用程序,可以启动一个过程(大约需要2至3个小时才能完成)
每隔几分钟,有什么办法可以显示一条消息,指出“进程正在运行...”,以下是代码:
using (process)
{
var output = new StringBuilder();
var error = new StringBuilder();
using (var outputWaitHandle = new AutoResetEvent(false))
using (var errorWaitHandle = new AutoResetEvent(false))
{
process.OutputDataReceived += (sender, e) =>
{
if (e.Data == null)
{
outputWaitHandle.Set();
}
else
{
output.AppendLine(e.Data);
}
};
process.ErrorDataReceived += (sender, e) =>
{
if (e.Data == null)
{
errorWaitHandle.Set();
}
else
{
error.AppendLine(e.Data);
}
};
process.Start();
Console.WriteLine("Process is running..."); // THIS ONLY DISPLAYS ONCE
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
Console.WriteLine("Process has shutdown...")
}
您的进程正在占用您的主线程,因此在进程运行时您将无法在该线程上执行任何操作。 创建一个使用计时器偶尔输出到控制台的后台工作程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.