如何在C#应用程序中启用MMCSS?

如何在C#应用程序中启用MMCSS?,c#,multithreading,multimedia,C#,Multithreading,Multimedia,我想试试多媒体类调度服务 我希望它可以通过更好地调度线程来减少延迟 如何在C#中完成它? 注意:我的应用程序与多媒体无关,我只需要MMCSS的功能。我不确定在托管应用程序中使用MMCSS有什么意义。毕竟,MMCSS的目的是调整进程的调度优先级,以避免多媒体流处理过程中出现停顿——我们所说的是纳秒级调度。但是,如果使用托管语言,垃圾收集可以在任何时候发生,并且可能需要几十甚至几百毫秒,那么我不确定MMCSS将提供哪些好处,而这些好处不会被垃圾收集彻底消除 考虑到这一点,我不希望很快看到MMCSS的

我想试试多媒体类调度服务

我希望它可以通过更好地调度线程来减少延迟

如何在C#中完成它?


注意:我的应用程序与多媒体无关,我只需要MMCSS的功能。

我不确定在托管应用程序中使用MMCSS有什么意义。毕竟,MMCSS的目的是调整进程的调度优先级,以避免多媒体流处理过程中出现停顿——我们所说的是纳秒级调度。但是,如果使用托管语言,垃圾收集可以在任何时候发生,并且可能需要几十甚至几百毫秒,那么我不确定MMCSS将提供哪些好处,而这些好处不会被垃圾收集彻底消除

考虑到这一点,我不希望很快看到MMCSS的托管接口。您当然可以通过P/Invoke访问它,但我不希望它会带来奇迹:)

执行工作的每个线程 与特定任务相关的调用 AvSetMmMaxThreadCharacteristics或 AvSetMmThreadCharacteristics函数 通知MMCSS它正在处理 这项任务

看起来您所需要的只是p/调用这些API调用中的一个或另一个

然而,我怀疑当垃圾收集器介入并把事情搞砸的时候,所有这些都是徒劳的


您是否对应用程序进行过任何分析,以了解封面下发生了什么?如果你的应用程序确实对延迟敏感,那么老实说,C语言可能是错误的选择。

我只是好奇。我问的每一个问题,答案都是从——你不能,你不,你不应该,你不需要。。。。为什么?无论如何。你能告诉我使用MMCSS需要调用什么吗?这是不是像一开始叫“开始”,最后叫“停止”?还是更复杂?这些方法可能是什么?同意BB。如果你不明白这一点,不要费心回答。我知道这是一个错误的选择。但这是唯一的选择,对此我无能为力。。我能做的就是确保延迟最小化。。。是什么让你认为这涉及到GC?@Bobb-这是C#,你无法避免垃圾收集器!哦,真的吗:)wonna在这上面下了赌注?我很好奇你认为如何在托管语言中避免GC。当然,你可以将其最小化,但你不能完全避免。如果你只创建你需要的实例,答案很简单,GC不会启动,或者如果你使用很少的内存,你可以将其延迟数小时。其他网站复制此问题和答案而不给予信任是否合法?