CE下能不能让多个线程同时去等待一个跟硬件中断绑定了的事件?试了不行也想不明白。

xqhrs232 2009-12-23 10:59:58
CE下能不能让多个线程同时去等待一个跟硬件中断绑定了的事件?试了不行也想不明白。
...全文
166 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqhrs232 2010-02-06
  • 打赏
  • 举报
回复
看来只能是建立两个事件,让一个事件去等另外一个事件,一个线程各等一个,不要让两个线程同时去等一个事件.
dxw777 2010-01-07
  • 打赏
  • 举报
回复
12楼正解。
为什么非得2个等1个呢
好不容易等到 还让别人抢去 多伤心
huangqibin888 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xqhrs232 的回复:]
C/C++ code

emarks

The WaitForSingleObject function checks the current state of the specifiedobject. If the object抯 stateis nonsignaled, the calling thread enters an efficient wait state. The thread consumes very little processor timewhile waitingfor theobject state to become signaled or the time-out interval to elapse.
Before returning, a wait function modifies the state of some types of synchronization objects. Modification occurs onlyfor theobject or objects whose signaled state caused the function toreturn. For example, the count of a semaphoreobjectis decreased by one.

上面的文字说明等待到事件的线程会把对应的事件的状态修改掉(有效状态变为无效什么的).
[/Quote]

你试试一开始建立事件的时候把事件设为手动置无信号,然后在等待事件后需要的地方手动用Reset()把事件置无信号。
xqhrs232 2009-12-23
  • 打赏
  • 举报
回复
另外再加了一个事件就可以了,但不知道最后的性能会怎么样.没真实的环境可测啊!
xqhrs232 2009-12-23
  • 打赏
  • 举报
回复
估计的另外加一个事件,通过这个另外的事件来协调同步.
FLandY1982 2009-12-23
  • 打赏
  • 举报
回复
应该是不会有问题的.
代码段发来看看...

简单的实现就是中断里面触发多个事件了
xqhrs232 2009-12-23
  • 打赏
  • 举报
回复
我这样做了,让两个线程去同时等待一个自动复位并且跟中断绑定的事件.

后面运行的线程老会被不断地触发----这个时候还没有开中断的.----------为什么会这样?
博说医械研发 2009-12-23
  • 打赏
  • 举报
回复
两个人都想找老婆,来了一个MM,结果只能被其中强壮的抢走。
xqhrs232 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 veabol 的回复:]
可以用一个线程等待一个中断事件,接收到之后再根据需要set其它的事件,而其它的线程等待这些被set的事件
[/Quote]

这样做是可以的.但两个线程同时去等一个事件就不行啊!
博说医械研发 2009-12-23
  • 打赏
  • 举报
回复
可以用一个线程等待一个中断事件,接收到之后再根据需要set其它的事件,而其它的线程等待这些被set的事件
博说医械研发 2009-12-23
  • 打赏
  • 举报
回复
多线程等待同一个事件多个线程都能同时接收到?不可能吧,应该是优先级高的那个接收到
xqhrs232 2009-12-23
  • 打赏
  • 举报
回复


emarks

The WaitForSingleObject function checks the current state of the specified object. If the object抯 state is nonsignaled, the calling thread enters an efficient wait state. The thread consumes very little processor time while waiting for the object state to become signaled or the time-out interval to elapse.
Before returning, a wait function modifies the state of some types of synchronization objects. Modification occurs only for the object or objects whose signaled state caused the function to return. For example, the count of a semaphore object is decreased by one.


上面的文字说明等待到事件的线程会把对应的事件的状态修改掉(有效状态变为无效什么的).
xqhrs232 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 suwyhoho 的回复:]
LZ把代码发出来看看

你的事件是怎么定义的,是不是申请或者绑定了两次
[/Quote]
代码太多不好贴!没有绑定两次.只是把中断号跟事件做了个绑定,然后是两个线程都去等这个事件的消息.
suwyhoho 2009-12-23
  • 打赏
  • 举报
回复
LZ把代码发出来看看

你的事件是怎么定义的,是不是申请或者绑定了两次
guopeixin 2009-12-23
  • 打赏
  • 举报
回复
ist的代码搞出来
xqhrs232 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 starlyc 的回复:]
应该是不会有问题的.

[/Quote]

做实验就是上面的结果,我也想不明白啊!!!
starlyc 2009-12-23
  • 打赏
  • 举报
回复
应该是不会有问题的.

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧