【问题标题】:OutputDataReceived (and ErrorDataReceived) has a slow firing rate and creates a large bufferOutputDataReceived(和 ErrorDataReceived)的触发速度较慢并创建了一个大缓冲区
【发布时间】:2010-11-05 22:45:07
【问题描述】:

有没有办法提高 .NET 中的 Process 对象引发 OutputDataReceived 事件的速率?它创建了一个大缓冲区(我相信 1024 个字符),该缓冲区被批量转储,这使得应用程序不像我希望的那样流畅。

提前谢谢你!

【问题讨论】:

    标签: c# .net vb.net process


    【解决方案1】:

    Process.OutputDataReceived 事件仅在以下两种情况下触发。

    1. 输出中遇到换行符
    2. 已收到完整数据

    因此,当且仅当您的输出流中包含换行符时,事件才会被触发,否则它将等待完整的数据,然后该事件才会被触发。

    我刚刚测试到 968000 字节。仅在收到整个数据后才会引发事件,因为我没有在输出中保留任何换行符。

    【讨论】:

    • 这个信息应该真的添加到 MSDN 中。阅读 - msdn.microsoft.com/en-us/library/…,你不能确定它是这样工作的,只有提示是例子,但这只是提示它是如何工作的,而不是具体的解释。
    猜你喜欢
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2012-02-08
    • 2011-02-01
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 2012-03-21
    相关资源
    最近更新 更多