将DirectShow播放文件的功能写成了一个动态库,然后用Delphi写的主程序调用这个动态库来播放文件,当长时间播放后执行动态库的SetPosition函数来调节播放位置时,会停顿上十几秒的时间。
1、发生这种现象时该程序的CPU使用率降到了0
2、执行过一次SetPosition后在短时间内再次执行则不会发生,只有间隔时间较长时(10分钟后)才能明显的看出停顿来。
3、使用VC写的主程序调用该动态库无此现象 急死了,不只哪位大侠了解
分数可以再加
1、发生这种现象时该程序的CPU使用率降到了0
2、执行过一次SetPosition后在短时间内再次执行则不会发生,只有间隔时间较长时(10分钟后)才能明显的看出停顿来。
3、使用VC写的主程序调用该动态库无此现象 急死了,不只哪位大侠了解
分数可以再加
当你要用时他从硬盘上临时倒入,引起延迟。当程序等待硬盘中的代码调入时CPU占用为0也是对的。而VC程序的系统消耗小,不会令DLL被交换。
你可以把程序换到一个大内存的机器上去运行,如果问题解决了,那就说明我的猜测正确。
如果仍是这样,那就再找找原因。
可以是Delphi与VC的缓冲区利用问题吧。
若觖决后,请告知我:[email protected]
为谢!