看板 C_Sharp 關於我們 聯絡資訊
小弟沒寫過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)