我想尝试多媒体类调度服务http://msdn.microsoft.com/en-us/library/ms684247(v=VS.85).aspx
我希望它可以通过更好地调度我的线程来减少延迟。
如何在 C# 中完成?
注意:我的应用程序与多媒体无关,我只需要 MMCSS 的功能。
我想尝试多媒体类调度服务http://msdn.microsoft.com/en-us/library/ms684247(v=VS.85).aspx
我希望它可以通过更好地调度我的线程来减少延迟。
如何在 C# 中完成?
注意:我的应用程序与多媒体无关,我只需要 MMCSS 的功能。
执行与特定任务相关的工作的每个线程调用 AvSetMmMaxThreadCharacteristics 或 AvSetMmThreadCharacteristics 函数来通知 MMCSS 它正在处理该任务。
您似乎只需要 P/Invoke 一个或其他这些 API 调用。
然而,我怀疑当垃圾收集器介入并把事情搞砸时,这一切都是徒劳的。
您是否对应用程序进行了任何分析以了解幕后情况?如果您的应用程序确实对延迟敏感,那么说实话,C# 可能是错误的语言选择。
我不确定在托管应用程序中使用 MMCSS 有什么意义。毕竟,MMCSS 的重点是调整进程的调度优先级,以避免多媒体流处理期间的停顿——我们说的是纳秒级调度。但是对于一种可以随时进行垃圾收集并且可能需要数十甚至数百毫秒的托管语言,那么我不确定 MMCSS 会提供哪些不会被垃圾收集完全消除的好处。
考虑到这一点,我不希望很快看到 MMCSS 的托管接口。您当然可以通过 P/Invoke 访问它,但我不希望它会带来奇迹 :)