C# DirectShow使.NET应用程序中的时间变慢

C# DirectShow使.NET应用程序中的时间变慢,c#,.net,time,directshow,directshow.net,C#,.net,Time,Directshow,Directshow.net,在我们的C#.NET应用程序中,我们有两个DirectShow过滤器图,每个图显示一个视频设备和一个音频设备。每当FilterGraph运行时,系统时间会减慢约4-6秒/分钟。。。这些图并没有编码任何东西,只是显示来自源代码的内容 这只发生在应用程序中,而不是GraphiEdit中 是什么导致了这种行为?我们可以怎么做呢?您是否在虚拟机上运行应用程序?我曾经有过一个类似的问题(虽然DirectShow没有),经过深入研究,我们发现这个问题与虚拟机有关——在某些情况下,虚拟机的运行速度会减慢。我认

在我们的C#.NET应用程序中,我们有两个DirectShow过滤器图,每个图显示一个视频设备和一个音频设备。每当FilterGraph运行时,系统时间会减慢约4-6秒/分钟。。。这些图并没有编码任何东西,只是显示来自源代码的内容

这只发生在应用程序中,而不是GraphiEdit中


是什么导致了这种行为?我们可以怎么做呢?

您是否在虚拟机上运行应用程序?我曾经有过一个类似的问题(虽然DirectShow没有),经过深入研究,我们发现这个问题与虚拟机有关——在某些情况下,虚拟机的运行速度会减慢。

我认为这一定是其中一个驱动程序中的一个bug,使它将中断延迟足够长的时间,并且通常足以使某些计时器中断中断被丢弃。DirectShow中的其他任何东西都不能像这样影响系统时钟


G

否。。我们在核心i5(第二代)上运行它,使用的是Windows7x86EnterpriseProperty,这不太可能影响系统时钟。不要指望你设定的计时器,比如说,在一秒钟后准确地触发。如果您的程序特别忙,它总是会花费更多、更长的时间。问题也会出现在Windows时钟(任务栏中可见的时钟)上。。除此之外,它还影响DirectShow图形时钟-这会导致媒体文件在捕获视频时出现错误的时间。这似乎是最接近的答案,虽然我们只使用普通的windows驱动程序,它应该知道正确的中断处理…DirectShow将时钟的中断频率切换到正常中断速率的10倍左右(或者至少过去是这样)。我想,当时钟中断率较低时,这很容易出现不明显的问题。