DataReceivedEventHandler触发器的问题

时间:2014-08-08 16:50:26

标签: c# python-2.7 command-line com command-prompt

你好朋友,               我有下面的代码,我用它来运行python脚本(使用telnet,COM和USB)并捕获输出。我在这里面临的问题是使用DataReceivedEvent Handler,它会在长时间延迟大约几分钟后触发以获取输出,尤其是在脚本中存在COM连接时。下面是我的代码,我无法理解为什么在使用命令提示符运行它时需要这么长时间来触发和运行。

          var start = new Process();
         start.StartInfo.FileName = @"C:\Python27\python.exe";
        start.StartInfo.Arguments = string.Format("{0} {1}", fileName,"")
        start.StartInfo.UseShellExecute = false;
        start.StartInfo.RedirectStandardOutput = true;
        start.StartInfo.CreateNoWindow = true;

        start.OutputDataReceived += new DataReceivedEventHandler(OnDataReceived);
        start.Start();
        start.BeginOutputReadLine();

1 个答案:

答案 0 :(得分:0)

我进一步调查并确认当从python脚本捕获输出时,响应被延迟。但是,通过添加对sys.stdout.flush()的调用,我能够获得所需的行为。