【发布时间】:2018-06-19 22:05:37
【问题描述】:
我想要实现的是一个绘图窗口,它不断更新(因为我的数据文件不断变化)并保持打开状态,直到我手动关闭它。
我的 gnuplot 脚本以:
结尾...
pause 0.5
reread
如果我从 命令行 使用此脚本调用 gnuplot,它会按预期工作。
但是,如果我 通过 C# 调用 gnuplot 并将相同的脚本作为参数传递,则绘图窗口打开 0.5 秒并在之后立即关闭。 我使用以下代码来实现这一点:
Process plotProcess = new Process();
plotProcess.StartInfo.FileName = @"""C:\Program Files\gnuplot\bin\gnuplot.exe""";
plotProcess.StartInfo.UseShellExecute = false;
plotProcess.StartInfo.RedirectStandardInput = true;
plotProcess.StartInfo.CreateNoWindow = true;
plotProcess.Start();
StreamWriter sw = plotProcess.StandardInput;
String strInputText = @"GNUPLOTSCRIPT;pause 0.5;reread";
sw.WriteLine(strInputText);
sw.Flush();
sw.Close();
鉴于 gnuplot 脚本可以从命令行运行,我假设我没有为 plotProcess 调用正确的扩展方法。为了解决这个问题,我尝试了(不同的顺序)以下
...
plotProcess.WaitForExit();
//sw.Flush();
//sw.Close();
这要么无济于事,要么完全冻结我的进程,直到我不得不从任务管理器中终止它。
我很高兴有任何建议。
【问题讨论】:
标签: c# plot process gnuplot continuous