![](/img/trans.png)
[英]What's the difference between .NET Real-Time and TaskMgr Real-time priority class?
[英]Real Time priority in .Net
我有一个通过D2XX接口将音频数据馈送到FTDI设备的应用程序。 当我的应用程序具有焦点时,它可以完美工作,并且只使用很少的CPU(5%)。 但是当我重击CPU时(通过切换到其他应用程序或进行大量绘制),有时会在音频中产生卡顿现象。
我尝试了很多方法来防止这种情况发生(实时的进程/线程优先级,MMCSS调度等),但有时仍然会发生。
还有其他提高优先级的方法吗?或者不编写内核驱动程序就不可能吗?
如果将进程(非线程)优先级设置为“实时”,则其线程应始终在其他非实时进程的线程之前运行。 所以我认为这是您可以做的最好的事情。
但是,仅在绝对必要时才应使用“实时”进程优先级,因为它可能导致整个系统无响应。
增加服务设备的线程的优先级,或者增加(如果可能)与设备通信的缓冲区大小。
Windows内任务切换的最短时间为10ms。 如果您的线程不能按时处理设备中的数据,则会出现断断续续的声音。
您可能要考虑使用.net 4.0的并行编程功能。 创建任务工厂并通过多个并行线程完成工作时,分配的cpu%将更高。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.