首页 > Windows开发 > 详细

C# 项目中遇到过的坑(持续更新)

时间:2020-04-24 12:47:57      阅读:64      评论:0      收藏:0      [点我收藏+]

报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏

技术分享图片

 

 

 因为 waveSource是在主线程中生成的,但是waveSource.Dispose();是新建了一个线程调用的,所以此处问题,我是用以下方式解决的

private void Time_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (boo) {
                time++;
                if (time >= 3) {
                    boo = false;
                    time = 0;
                    Dispatcher.Invoke(
                        new Action(delegate {
                            recorder.StopRec();
                        })
                    );
                    //recorder.StopRec();
                }
            }
        }

其中Time_Elapsed是新建的那个线程,waveSource.Dispose();通过 recorder.StopRec();调用,之前是直接调用,所以报错了

现在改成了Dispatcher.Invoke的形式,将 recorder.StopRec()的调用放在了主线程,所以暂时没出现之前的问题

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

C# 项目中遇到过的坑(持续更新)

原文:https://www.cnblogs.com/lingLuoChengMi/p/12766428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!