[問題] 無法使用emgu的解構
小弟沒寫過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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章