台灣最大程式設計社群網站
線上人數
1209
 
會員總數:242638
討論主題:187614
歡迎您免費加入會員
討論區列表 >> VB.NET >> VB.NET Capture存入PictureBox 該如何釋放資源?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
VB.NET Capture存入PictureBox 該如何釋放資源?
價值 : 30 QP  點閱數:96 回應數:2

樓主

DreamWalker
門外漢
0 3
42 3
發送站內信

小弟目前想要透過攝影機將圖片顯示在PictureBox上,並抓取PictureBox.Image來做處理(解讀條碼)。
想請問 使用 宣告一個 New Capture開啟攝影機(宣告在全域),然後將畫面直接顯示在PictureBox上(透過Timer每0.5秒抓一次),這樣的做法該如何釋放資源呢?
因為有時候執行一段時間會顯示記憶體不足。
請各位大大們幫小弟解答~~
程式碼如下




搜尋相關Tags的文章: [ 釋放資源、Capture、攝影機 ] ,
本篇文章發表於2018-06-13 15:11
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
PictureBoxCapture.Image = takepic.QueryFrame.Bitmap '取得影像
這行底下加個gc.collect()試試看

這得看看到底是 takepic一直佔走記憶體
還是"PictureBoxCapture.Image =" 這個動作佔走的,若後者,那改成都用畫的而不是指定就可以解決
本篇文章回覆於2018-06-14 15:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

DreamWalker
檢舉此回應
不好意思回復晚了。
想請問都用畫的意思是...?
另外,我加了gc.collect()之後,執行不到幾秒就跑出下面這個錯誤了...

類型 'System.AccessViolationException' 的未處理例外狀況發生於 System.Drawing.dll
其他資訊: 嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀。

這個錯誤好像無法透過TRY CATCH 解決...
本篇文章回覆於2018-06-15 10:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.