如何将IEnumerable与Process.Start的输出事件处理程序一起使用?

问题描述 投票:2回答:1

我有以下用例。我已经从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#端的一个功能下运行。

c# c++ process ienumerable
1个回答
0
投票

如果我已经正确理解了您的问题,那么可以使用下一种方法在外部进程运行时读取其输出:

© www.soinside.com 2019 - 2024. All rights reserved.