作者Achillean (山猪元年革命志士)
看板C_Sharp
标题[问题] 无法使用emgu的解构
时间Wed Jul 18 11:24:11 2012
小弟没写过c#
为了作介面的openCV决定使用emgu
目前做了一个简单类别但是关闭时候
卡在callback函式里面无法执行解构子
想请前辈指导一下
namespace achCCD
{
class ClassEmguCCD
{
private Capture m_cap;
private PictureBox m_pictureBox;
public ClassEmguCCD()
{
// TODO: Complete member initialization
}
//解构子
~ClassEmguCCD()
{
m_cap.Stop();
m_cap.ImageGrabbed -= Run;
m_cap.Dispose();
}
/// <summary>
/// 初始化第iCCD的摄影机
/// </summary>
/// <param name="iCCD"> 第iCCD台 </param>
/// <returns></returns>
public bool Initializer( int iCCD)
{
if (m_cap != null)
{
//Release
}
m_cap = new Capture(iCCD);
m_cap.ImageGrabbed += Run;
m_cap.Start();
return true;
}
//设定显示物件
public void SetWindow(PictureBox pictureBox)
{
m_pictureBox = pictureBox;
}
//取像时候更新画面
private void Run(object sender, EventArgs arg)
{
if (m_pictureBox != null)
{
m_pictureBox.Image = m_cap.RetrieveGrayFrame().ToBitmap();
}
}
}
}
当我主程式关掉时候,一直无法进入
~ClassEmguCCD
反而是不断的呼叫到
Run
想请教一下应该怎麽做才能让程式关闭时候
自动(或手动?)释放资源,不会卡在里面而无法关闭。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.78.236
※ 编辑: Achillean 来自: 122.116.78.236 (07/18 11:27)