我的客户端有一个长时间运行的过程,它使用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的自制版本,其中包含一些调整,但不会导致此错误。