问题描述
我正在创建一个过程,以使用数据接收功能从命令行提取ffmpeg的运行结果。该过程和函数中还有很多其他事情,因此为了简单起见,我对其进行了编辑,因此我可以专注于特定问题,删除事件处理程序。
Process p = new Process();
p.EnableRaisingEvents = true;
p.ErrorDataReceived += new DataReceivedEventHandler
(
delegate (object sender,DataReceivedEventArgs e)
{
output += e.Data + "\n";
}
);
我正在获取所需的信息,但是当我第二次运行它时,它会过早终止。我尝试了p.ErrorDataReceived-= null;但这没什么改变。
我需要知道的是如何在过程完成后删除DataReceivedEventHandler。我知道我可以通过提供一个函数名并用-=删除它来做到这一点,但我想知道如何使用这种方法。
编辑: 我可以使用下面的代码删除事件处理程序,但是第二次它仍然过早结束,显然这不是我的问题。
DataReceivedEventHandler myDelegate = null;
myDelegate = delegate (object sender,DataReceivedEventArgs e)
{
output += e.Data + "\n";
};
p.ErrorDataReceived += myDelegate;
...
p.ErrorDataReceived -= myDelegate;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)