AForge.NET泄漏处理

时间:2013-06-08 03:35:55

标签: c# aforge

我有一个正在处理的程序,我们在很久以前发现了内存泄漏,并设法解决了初始问题,但是现在我们发现我们的AForge.net视频播放器正在泄漏Handles,我们正在处理控件但由于某种原因,句柄永远不会释放。

使用AForge.Net视频控件的窗口是一个弹出的气泡并告诉用户一些信息,如果有可用的视频源显示,我们发现如果我们不提供视频源,句柄被正确释放,但是无论何时我们显示视频流,句柄都不会释放,最终我们会遇到15,000个句柄并且应用程序崩溃,告诉我们AForge.NET是故障模块。

处理代码如下。

if (videoSourcePlayer != null)
{
if (videoSourcePlayer.VideoSource != null)
{
// clearing the event subscription
videoSourcePlayer.VideoSource.PlayingFinished -= VideoSource_PlayingFinished;

// remove refernce to video source
videoSourcePlayer.VideoSource = null;

}

if (videoSourcePlayer.IsRunning && _openVideoAlarmsCount < 1)
{
videoSourcePlayer.Stop();
}

if (videoSourcePlayer.IsRunning)
{
videoSourcePlayer.VideoSource.Stop();
}

videoSourcePlayer.Click -= videoSourcePlayer_Click;

// dispose video player
videoSourcePlayer.Dispose();
videoSourcePlayer = null;
}

videoSourcePlayer是WinForm上的控件的名称,我认为它正确处理,但无论我尝试什么我都无法让它正确释放句柄,我不能分享到很多代码,但我可以尝试回答任何人可能有助于纠正问题的任何问题,或至少识别错误。

注意:我们使用Winforms + .NET 3.5 SP1和来自http://www.aforgenet.com/news/2012.02.23.releasing_framework_2.2.4.html的最新AForge.net

提前感谢您的帮助!

0 个答案:

没有答案