关于进程RedirectStandardOutput的问题
我有个问题,大家来看看啊~
把进程的输出重定向到一个string..
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.Start();
string out = myProcess.StandardOutput.ReadToEnd();
怎么样才可以控制进程的输出量呢,比方说输出超过1M,就把这个进程杀掉
问题点数:60、回复次数:7Top
1 楼Sunmast(速马@Redmond, WA)回复于 2005-03-20 16:35:14 得分 10
表ReadToEndTop
2 楼ivivid()回复于 2005-03-21 12:57:33 得分 0
那又怎么弄呢? 就算不用ReadToEnd,也已经输出到缓冲区了吧?Top
3 楼web_gus(树欲静而风不止)回复于 2005-03-21 13:33:35 得分 45
Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("Process_StandardOutput_Sample.exe" );
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
// Read the standard output of the spawned process.
string myString = myStreamReader.ReadLine();
Console.WriteLine(myString);
myProcess.Close();
好像你的要求不行,你输出的时候实际已经执行完了,这时候不用杀了。。
Top
4 楼ivivid()回复于 2005-03-21 17:36:24 得分 0
但实际的情况是当进程输出太多的时候,整个都死掉了,我是想,当进程输出超过一定数量,就杀掉它。而且我发现,当进程不停的输出的时候,主进程根本拿不到cpu时间,我试过根据进程运行的时间来杀死进程,但也做不到。
下面是我用来当做这个进程测试的c++程序
#include<iostream>
using namespace std;
int p[1000000];
int main(){
for(int j=0;j<10;j++)
for(int i=0; i<1000000; i++) cout<<p[i];
}Top
5 楼haoco()回复于 2005-03-21 19:47:53 得分 5
upTop
6 楼ivivid()回复于 2005-03-22 18:51:36 得分 0
up
Top
7 楼ivivid()回复于 2005-03-23 21:22:53 得分 0
up
Top



