报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏
因为 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()的调用放在了主线程,所以暂时没出现之前的问题
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------