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