C# .net进程:如何;“监测”;处理输出并使应用程序事件响应
我正在尝试使用C#和mencoder开发一个视频转换器。 目前它是可行的,但我有一些问题要解决。特别是C# .net进程:如何;“监测”;处理输出并使应用程序事件响应,c#,.net,C#,.net,我正在尝试使用C#和mencoder开发一个视频转换器。 目前它是可行的,但我有一些问题要解决。特别是 是否可以在执行过程中“不阻止”我的前端应用程序?实际上,我的应用程序停止响应事件,直到调用过程结束 在Process.net类中存在一些事件来管理我的应用程序的标准输出,因此我可以使用输出更新例如文本框 谢谢,我找到了 p.OutputDataReceived += new DataReceivedEventHandler(MEncoderOutputHandler); 我找到了 p.Out
p.OutputDataReceived += new DataReceivedEventHandler(MEncoderOutputHandler);
我找到了
p.OutputDataReceived += new DataReceivedEventHandler(MEncoderOutputHandler);
使用
Application.DoEvents()
另外,如果您调用的函数阻塞了代码并且需要很长时间才能响应,则不应该从UI线程调用它。只需创建一个新线程,调用函数并与UI交互即可。
还请注意,从另一个线程访问UI会引发异常,因此您应该使用委托或使用
backgroundworker
控件来处理这些异常。使用应用程序.DoEvents()
另外,如果您调用的函数阻塞了代码并且需要很长时间才能响应,则不应该从UI线程调用它。只需创建一个新线程,调用函数并与UI交互即可。
还请注意,从另一个线程访问UI会引发异常,因此您应该使用委托或使用
backgroundworker
控件来处理这些异常。应用程序.DoEvents
通常是一个错误的选择,应该仅用作解决方法。当输出可用时获取事件或异步读取输出流的能力都更好。Application.DoEvents
通常是一个不好的选择,应该仅用作解决方法。当输出可用时获取事件或异步读取输出流的能力都更好。