簡體   English   中英

使用C#外部執行后使gnuplot繪圖窗口保持打開狀態

[英]Keep gnuplot plot window open after external execution with C#

我要實現的是一個繪圖窗口,該窗口連續更新 (因為我的數據文件不斷變化),並且一直保持打開狀態,直到我手動將其關閉

我的gnuplot腳本結尾為:

...
pause 0.5 
reread

如果我從命令行使用此腳本調用gnuplot,它將按預期工作

但是,如果我通過C#調用gnuplot並將相同的腳本作為參數傳遞,則繪圖窗口將打開0.5 s,然后緊隨其后關閉 我使用以下代碼來實現這一點:

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();

這要么無濟於事,要么完全凍結了我的進程,直到我不得不從任務管理器中終止它為止。
我很高興有任何建議。

您是否嘗試過向gnuplot命令添加“ -persist”或更短的“ -p”標志?

plotProcess.StartInfo.FileName = @"""C:\Program Files\gnuplot\bin\gnuplot.exe -persist""";

這應該告訴gnuplot即使腳本完成后也要保持繪圖窗口打開。 另外,您可以將gnuplot腳本中的輸出設置為持久性。 請參閱此處的更多選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM