我快疯了!!
我通过 gsm 发送音频,根据语音规范,我必须发送语音数据包,然后等待 20 毫秒才能获得正常语音。我使用system.threading.thread.sleep(20)。但是,我注意到声音很慢。但是当我运行另一个不同的应用程序时,声音变得正常。
经过一些调试,我发现 system.Threading.Thread.Sleep(20) 需要 31 毫秒,但如果我运行另一个不同的应用程序,Thread.Sleep (20) 将始终是准确的。
我可以使用哪些其他替代方法来使线程准确地休眠 20 毫秒,同时不影响 PC 性能。
谢谢,
Sleep(20)
表示睡眠至少 20 毫秒。基本上,它会挂起线程并且不会在指定的延迟内恢复调度。之后线程仍然需要被调度才能真正恢复运行。取决于正在运行的其他线程,可能会立即运行,也可能稍后运行。这里没有任何保证。
The 文档指出这一点:
系统时钟以称为时钟分辨率的特定速率滴答。实际超时可能不完全是指定的超时, 因为
指定的超时将被调整以与时钟滴答一致。
有关时钟分辨率和等待时间的更多信息,请参阅
睡眠功能主题。该方法调用 Sleep 函数
Windows 系统 API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)