我的一个客户有一个长时间运行的过程,它使用 NAudio 定期在默认录音设备上录制传入的音频几个小时。它作为桌面程序运行,一次运行数天或数周。
今天他给我发了这个异常报告:
Cannot pass a GCHandle across AppDomains.
Parameter name: handle
System.ArgumentException
at System.Runtime.InteropServices.GCHandle.InternalCheckDomain(IntPtr handle)
at System.Runtime.InteropServices.GCHandle.FromIntPtr(IntPtr value)
at NAudio.Wave.WaveIn.Callback(IntPtr waveInHandle, WaveMessage message, IntPtr userData, WaveHeader waveHeader, IntPtr reserved) in C:\Libraries\NAudio\naudio-5019c8f1c6fc\NAudio\Wave\WaveInputs\WaveIn.cs:line 132
at NAudio.Wave.WaveWindow.WndProc(Message& m) in C:\Libraries\NAudio\naudio-5019c8f1c6fc\NAudio\Wave\MmeInterop\WaveWindow.cs:line 64
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
我做了一些谷歌搜索,但找不到任何明显的东西。是否有一个很好的补丁或修复程序不涉及静默捕获异常?
我正在使用 NAudio 的自制版本,其中包含一些调整,但没有任何内容会导致此错误。