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

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

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

 

 

 因为 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# 项目中遇到过的坑(持续更新)

上一篇:Linux - 用户权限相关命令


下一篇:手把手教你如何构建 WPF 官方开源框架源代码