DataReceivedEventHandler触发器的问题

本文关键字:问题 触发器 DataReceivedEventHandler | 更新日期: 2023-09-27 18:17:21

大家好!我有下面的代码,我用它来运行python脚本(使用telnet,COM和USB)并捕获输出。我在这里面临的问题是DataReceivedEvent处理程序,它在长时间延迟后触发大约几分钟以获得输出,特别是如果脚本中有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();

DataReceivedEventHandler触发器的问题

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