我有以下用例。我已经从Unmanned C ++中创建了一个EXE。假设在控制台上打印1-100。输出捕获到下面的输出回调中
List<int> a = new List<int>();
process.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
{
a.add(Convert.ToInt(e.Data));
}
但是我想使用IEnumerable并产生e.Data的返回值。考虑到C ++ exe将拥有它自己的执行线程,因此它不会等待它提供控件。我将不得不等待执行完成。我可以捕获所有内容并准备一个列表。然后我可以一件一件地生产物品。我想问的是,在进程运行时,是否有任何已知的机制或方法可以做到这一点?我可以在C ++代码中进行哪些更改?这样我才能来回控制它?考虑此进程在C#端的一个功能下运行。
如果我已经正确理解了您的问题,那么可以使用下一种方法在外部进程运行时读取其输出: