使用process.StandardOutput.ReadToEnd()时延迟

时间:2016-01-20 08:53:32

标签: c# visual-studio

我正在处理一个时间敏感的问题,执行所需的时间至关重要。但现在我遇到了一个问题,StandardOutput.ReadToEnd();花费更多时间返回结果,从而增加执行时间。这是我代码的一部分。为了显示延迟,我在3个地方打印了时间。时间在代码下方提到。

 tsw.WriteLine("Time 1 :"+DateTime.UtcNow);

        System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
        /*REDIRECTING THE STANDARD INPUT TO  Process.StandardOutput StreamReader.*/
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;
        procStartInfo.CreateNoWindow = true;
        /*REDIRECTING THE STANDARD INPUT TO  Process.StandardOutput StreamReader.*/


        /*CREATING A PROCESS, ASSIGN ITS PROCESSINFO AND START IT*/
        proc.StartInfo = procStartInfo;
        proc.Start();
        /*CREATING A PROCESS, ASSIGN ITS PROCESSINFO AND START IT*/

   tsw.WriteLine("Time 2 :" + DateTime.UtcNow);

        /* GETTING RESULT INTO A STRING*/
        result = proc.StandardOutput.ReadToEnd();
        proc.WaitForExit();

    tsw.WriteLine("Time 3 :" + DateTime.UtcNow);

结果是

Time 1 :1/20/2016 6:37:57 AM Time 2 :1/20/2016 6:37:57 AM Time 3 :1/20/2016 6:38:02 AM

正如我们所见,proc.StandardOutput.ReadToEnd();大约需要5秒钟才能返回并以字符串形式存储。这是正常的还是我的代码有问题?非常感谢您的帮助。

0 个答案:

没有答案
相关问题