|
|
1
1
如果对StopRecording的调用被阻塞,一种方法是将其打包到异步调用中并等待其完成,并超时:
请注意,这会使线程池线程在超时的操作上被阻塞,因此您可能需要调用取消挂起操作(如果存在)的API方法,或者应该在实际生产中礼貌地关闭应用程序(因为您的线程处于不确定状态,您的应用程序状态可能会受到影响)在这种情况下,最好进一步改进此方法,这样,如果任务确实在超时时间之后完成,您就可以得到肯定的确认(如果您可以调用某种形式的取消,则此方法非常有用) |
|
2
1
嗯,我以前见过纳迪奥这样的问题。它使用mmsystem的方式使得死锁非常常见。不太确定它是否应该受到指责,它以文档化的方式使用API。只是一种很少被测试的方式。音频驱动程序也是一个常见的麻烦源,激烈的竞争似乎没有给一个好的软件工程师留下多少钱。
也许拉里·奥斯特曼有一些意见,他在音频层做了很多工作。他在这里发帖,你可以在他的博客上留言,引导他回答这个问题。除此之外,您还需要找到一种方法让NAudio作者与微软的支持人员一起工作。或者自己解决这个问题,提供源代码是有原因的。祝你好运。 |