【发布时间】:2017-08-16 05:30:13
【问题描述】:
我正在为 Grasshopper for Rhino 开发一个 C# 组件。由于我正在运行一些非常繁重的迭代分析,因此我想将结果连续输出到 cmd 窗口,以确保分析实际正在运行。
这是我尝试过的:
using System.Diagnostics;
Result results = new Result();
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = false;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
do {
results = RunHeavyOperation(results);
cmd.StandardInput.WriteLine("echo " + results.usefulInfo);
} while (!results.conditionForEnd);
cmd.WaitForExit();
Result RunHeavyOperation(Result previousResults) {
Result res = doHeavyStuff(previousResults);
return res;
}
我意识到我遗漏了一部分,但那是什么?
【问题讨论】:
-
为了记录,我暂时使用
System.Diagnostics.Debug.Write(results.usefulInformation);解决了这个问题,但是如果应用程序进入生产状态,这将不起作用。