在Time事件里            //停止捕获视频
            if (capture != null)
            {
                capture.Stop();
                capture.PreviewWindow = null;
                capture.Dispose();
            }
            capture = new Capture(videoDevice, audioDevice);
            //视频压缩
            LoadVideoCompressors();
            //音频压缩
            LoadAudioCompressors();
            if (!capture.Cued)
            {
                foreach (UCapacity u in uList)
                {
                    if (u.Capacity > 10)
                    {
                        //捕获的视频存储到本地硬盘的路径 
                        capture.Filename = u.U + System.DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".avi";
                        break;
                    }
                }
            }
            //预览模式将捕获到的视频显示到界面控件)
            if (capture.PreviewWindow == null)
            {
                capture.PreviewWindow = this.panelShow;
            }
            //开始捕获
            capture.Start();运行几个小时后
capture.Start();
提示尝试读取或写入受保护的内存,这通常指示其他内存已损坏在网上找到如下片段:
“底层的com组件根据你进程调用组件的次数来控制对象的增加和释放(对象释放会延迟,com自身的问题)。一般是调用强制垃圾回收或ao自带的回收对象的方法,效果不明显。
这种对象不释放的情况,通常出现在应用程序反复调用频率极高的情况下,调用间隔的时间小于对象回收的速度,将报这种错误。通常是自己的程序写的机构不合理,才会产生这种情况。 解决方法是自己在程序里强制释放COM资源,调用Marshal.ReleaseComObject()方法将不再使用的对象释放掉。”Marshal.ReleaseComObject()需要指定com对象显示释放,那我应该怎么释放呢?