Linux 模拟 windows 下 event (事件)

ccsu_dog 2014-02-20 10:52:48
需要在linux下使用windows下的event的功能。
需要的函数:
1. setevent()
2. getevent()
3. resetevent():event设置为手动置位模式

在windows下使用event很ok,但是在linux下 我使用信号量模拟过 但是效果不是很好 不知道各位有没有好的想法? 用C、C++
...全文
508 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
luotuo44 2014-03-26
  • 打赏
  • 举报
回复
Windows的event的手动重置事件是电平触发的,而Linux的那些同步方法都是边缘触发的。我觉得就这个就导致难于实现楼主的要求。
ccsu_dog 2014-03-25
  • 打赏
  • 举报
回复
引用 7 楼 jiandingzhe 的回复:
linux的GUI不是内核的一部分,所以消息的实现好像比较破碎。我也不是特别了解其全貌。 你可以看看这几个东西: dbus系统,用于进程间的通信与消息机制。 Glib文档的main event loop部分。这里提供了主循环、定时器等等。 Gobject文档的signals部分,这里提供了事件绑定、发送等机制。同时也是Gtk界面系统的基础。 另外,我估计X窗口肯定涉及一部分消息。但是没用过。
thanks
jiandingzhe 2014-03-11
  • 打赏
  • 举报
回复
linux的GUI不是内核的一部分,所以消息的实现好像比较破碎。我也不是特别了解其全貌。 你可以看看这几个东西: dbus系统,用于进程间的通信与消息机制。 Glib文档的main event loop部分。这里提供了主循环、定时器等等。 Gobject文档的signals部分,这里提供了事件绑定、发送等机制。同时也是Gtk界面系统的基础。 另外,我估计X窗口肯定涉及一部分消息。但是没用过。
赵4老师 2014-02-21
  • 打赏
  • 举报
回复
man 2 signal
ccsu_dog 2014-02-21
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
man 2 signal
如果这是需求: 1. 收到消息过来 发出信号 但是没有消息个数 只做出有消息来的信号 2. 处理线程 在没有消息时 挂起等待 得到信号后 去队列取数据处理 3. 当处理线程在队列中取不到数据之后 线程将信号置位 随之自己挂起 can ?
ccsu_dog 2014-02-20
  • 打赏
  • 举报
回复
引用 3 楼 truelance 的回复:
用一个共享队列, 一方写数据, 另一方读数据. 写完数据用signal通知对方去读
嗯 嗯 就是这个 signal 如何设计?
熊熊大叔 2014-02-20
  • 打赏
  • 举报
回复
用一个共享队列, 一方写数据, 另一方读数据. 写完数据用signal通知对方去读
ccsu_dog 2014-02-20
  • 打赏
  • 举报
回复
引用 1 楼 neustar1 的回复:
怎么用信号量呢?用条件变量模拟就可以了
根据win下 event 思考下 条件变量就不能达到要求的 setevent 可以不断的set getevent 可以不断的get 然后自己再去判断条件 条件不满足之后 自己reset 挂起自己
__cc__ 2014-02-20
  • 打赏
  • 举报
回复
怎么用信号量呢?用条件变量模拟就可以了

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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