C# 專案中遇到過的坑(持續更新)
阿新 • • 發佈:2020-04-24
報錯:嘗試讀取或寫入受保護的記憶體。這通常指示其他記憶體已損壞
因為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()的呼叫放在了主執行緒,所以暫時沒出現之前的問題
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------