分类: WINDOWS
2009-07-01 00:18:13
如果驱动只需要处理一个中断,WaitForSingleObject可以处理得很好,如果有多个中断需要处理时,能依葫芦画瓢,创建多个 event,每个event注册一个中断,然后使用WaitForMultipleObjects吗?很遗憾,虽然WinCE支持 WaitForMultipleObjects,但对于注册到中断的event,只允许等待一个,考虑到中断处理程序所要求的高性能,为了避免进入死锁, 当event数目大于1时,WaitForMultipleObjects将会失败,GetLastError返回参数无效的错误代码(是的,如果只有一 个event,WaitForMultipleObjects仍然会成功)。
在这种情况下,一种解决方法是,创建多个IST,每个IST处理一个中断。
此外,还有另一种更好的方法,就是把同一个event注册到多个中断,然后使用WaitForSingleObject等待此event,每个中断被触发时,event都会获得信号。
chinaunix网友2009-09-09 10:01:31
很有启发,我用一个普通的event和一个中断event就会出现莫名其妙的问题 有空来www.armce.com/bbs/来坐坐,很多做wince的朋友,一起学习