Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AForge.NET漏洞处理程序_C#_Aforge - Fatal编程技术网

C# AForge.NET漏洞处理程序

C# AForge.NET漏洞处理程序,c#,aforge,C#,Aforge,我有一个程序,我正在工作,我们发现了一个内存泄漏相当一段时间前,并已设法解决了最初的问题,但现在我们发现我们的AForge.net视频播放器是泄漏句柄,我们正在处理的控制,但由于某种原因句柄从未释放 使用AForge.Net视频控件的窗口是一个气泡,它会弹出并告诉用户一些信息,如果视频源可用,它会显示出来,我们发现如果我们不提供视频源,手柄会正确释放,但是只要我们显示视频流,句柄没有释放,最终我们达到了15000个句柄,应用程序崩溃,告诉我们一个错误模块是forge.NET 处理代码如下所示 i

我有一个程序,我正在工作,我们发现了一个内存泄漏相当一段时间前,并已设法解决了最初的问题,但现在我们发现我们的AForge.net视频播放器是泄漏句柄,我们正在处理的控制,但由于某种原因句柄从未释放

使用AForge.Net视频控件的窗口是一个气泡,它会弹出并告诉用户一些信息,如果视频源可用,它会显示出来,我们发现如果我们不提供视频源,手柄会正确释放,但是只要我们显示视频流,句柄没有释放,最终我们达到了15000个句柄,应用程序崩溃,告诉我们一个错误模块是forge.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;
}
if(videoSourcePlayer!=null)
{
if(videoSourcePlayer.VideoSource!=null)
{
//正在清除事件订阅
videoSourcePlayer.VideoSource.PlayingFinished-=VideoSource\u PlayingFinished;
//删除对视频源的引用
videoSourcePlayer.VideoSource=null;
}
if(videoSourcePlayer.IsRunning&&u openvideoalarmscont<1)
{
videoSourcePlayer.Stop();
}
if(videoSourcePlayer.IsRunning)
{
videoSourcePlayer.VideoSource.Stop();
}
videoSourcePlayer.Click-=videoSourcePlayer\u Click;
//配置视频播放器
videoSourcePlayer.Dispose();
videoSourcePlayer=null;
}
videoSourcePlayer是WinForm上控件的名称,我保证它被正确处理,但无论我如何尝试,我都无法让它正确释放句柄,我无法共享大部分代码,但我可以尝试回答任何人提出的可能有助于纠正问题或至少识别错误的任何问题

注意:我们使用的是Winforms+.NET3.5SP1和最新的AForge.NET


提前感谢您的帮助

使用源代码Luke,AForge是一个开源项目。下载源代码并构建它,以便获得调试版本。一旦你在源代码中找到了崩溃的位置,你应该很清楚它是什么样的句柄泄漏的。或者问一个更好的问题。