我做了一个MIDI播放器,自己解析MIDI文件,用timeSetEvent启动毫秒级定时器向计算机发MIDI码。在一般情况下效果不错。但是当自身窗口或其它窗口最大化、最小化时,播放时就会“卡”,我想是因为系统调度问题,CPU被分配给其它程序了,导致当前程序“缺少”CPU而出现“卡”,随即我在“播放”的时候将程序的优先级设置为最高,用的函数是
//set process priority to a high level for a time-critical task
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);效果还是不行,还是“卡”,但是这个问题我想是肯定可以解决的,因为用专业的播放器,如千千静听,Winamp都不会“卡”,无论你怎么最大化,最小化!期待解决。我想应该会有高手。
//set process priority to a high level for a time-critical task
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);效果还是不行,还是“卡”,但是这个问题我想是肯定可以解决的,因为用专业的播放器,如千千静听,Winamp都不会“卡”,无论你怎么最大化,最小化!期待解决。我想应该会有高手。
解决方案 »
- 重绘clistctrl onpaint问题
- 区分非托管代码托管代码
- 每天大便有8次多,小便也很多,请问大家这个会是什么病啊?
- VC中如何知道在使用拨号连接上网?
- 请教各位大虾:怎么样获取计算机所有串口名称
- 网络编程快速入门看什么书比较好,谁给个建议?
- 我的dll的debug版可以被正确调用,release版就报内存访问错误,高手帮忙啊
- 如何相应"最小化"消息?
- 调用COM时,编译通过,Link时报错error LNK2001: unresolved external symbol _IID_ICamShift
- DuiLib调用Draw3dRect的问题
- 属性页有些消息不能响应?比如WM_LBUTTONDOWN?
- 谁能提供对话框控件的学习资料,要详细的
缓冲是什么意思?我在播放前就已经将MIDI码扫描进入了内存。接下来的工作就是每一毫秒判断一下当前是否有需要发的MIDI码,如果有,则将码发出。