C# DirectShow 摄像头运行一段时间后死机
各位大侠:为什么DirectShow开发的摄像头运行一段时间后会死机呢?一般是什么原因造成死机的呢?
感谢了~~~! --------------------编程问答-------------------- 程序运行了一段时间后死机很可能是内存占用过高
检查一下程序里是不是有不规范的代码
如在循环中创建类,GC回收不及时就会导致内存占用越来越高 --------------------编程问答-------------------- 检查一下内存和cpu占用率是不是太大了 --------------------编程问答--------------------
int ISampleGrabberCB.BufferCB(double SampleTime, IntPtr pBuffer, int BufferLen)
{
// 画图形至每一帧
using (Bitmap v = new Bitmap(m_videoWidth, m_videoHeight, m_stride, PixelFormat.Format32bppArgb, pBuffer))
{
using (Graphics g = Graphics.FromImage(v))
{
//g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.DrawImage(bitmapOverlay, 0, 0, m_videoWidth, m_videoHeight);
}
if (m_bNeedGrap)
{
m_bmpGrapImage = (Bitmap)(v.Clone());
m_bNeedGrap = false;
}
//v.RotateFlip(RotateFlipType.Rotate90FlipY);
}
return 0;
}
可是我用的USING,没用一次我就释放了 --------------------编程问答-------------------- 或者这样问吧:DirectShow 为什么要释放Marshal.ReleaseComObject() IBaseFilter这个非托管资源,如果不释放有什么后果?
补充:.NET技术 , C#