Chinaunix首页 | 论坛 | 博客
  • 博客访问: 444811
  • 博文数量: 50
  • 博客积分: 2635
  • 博客等级: 少校
  • 技术积分: 760
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-16 14:02
文章分类

全部博文(50)

文章存档

2013年(3)

2012年(18)

2011年(7)

2009年(1)

2008年(21)

我的朋友

分类: 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都会获得信号。


阅读(5831) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-09-09 10:01:31

很有启发,我用一个普通的event和一个中断event就会出现莫名其妙的问题 有空来www.armce.com/bbs/来坐坐,很多做wince的朋友,一起学习