【发布时间】:2018-08-15 15:41:02
【问题描述】:
我想用 C# 做的是:
- 将已编译的 C++ 程序作为子进程启动,读取其重定向的标准输出。
- 将读取的字节输出到另一个文件,而 stdout 由子进程附加。
- 如果子进程在 10 秒后没有退出,则终止子进程。
- 如果子进程产生的输出大于 64MB,则终止子进程。
我正在使用 while 循环来检查子进程的执行时间,但是当我尝试从 Process.StandardOutput 获取输出数据时,线程将被阻塞,并且超时检查循环在子进程结束之前将无法工作.
有什么方法可以在 StreamReader 上进行非阻塞读取,或者在不使用非阻塞读取的情况下具有相同效果的解决方法?
【问题讨论】:
标签: c# subprocess streamreader