c++ builder定时器和事件同时触发

wxf54318 2019-07-16 12:51:47
c++ builder 10.1 berlin版,定时器和事件同时触发,共享的全局变量会不会访问冲突
...全文
207 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可能,概率比较小而已。虽然消息处理是同步的,但是某个事件处理内部完全可能调用了Application->ProcessMessages()或者类似的东西,这就可能导致事件处理嵌套,然后访问同一个全局变量...
wxf54318 2019-07-17
  • 打赏
  • 举报
回复
引用 1 楼 早打大打打核战争 的回复:
同时触发的可能性很低,除非你使用多媒体计时器之类的异步事件,一般事件都是直接或者间接由消息触发的,而消息处理是同步机制,但是事件嵌套是有可能的,对共享数据的访问可以使用某种互斥机制,参考System.SyncObjs单元

换句话说: 我的定时器函数中改变了一个全局变量,定时器函数还没有执行完就来了一个事件,会有冲突吗?
ooolinux 2019-07-16
  • 打赏
  • 举报
回复
Windows程序消息队列里的消息是依次处理的。
  • 打赏
  • 举报
回复
同时触发的可能性很低,除非你使用多媒体计时器之类的异步事件,一般事件都是直接或者间接由消息触发的,而消息处理是同步机制,但是事件嵌套是有可能的,对共享数据的访问可以使用某种互斥机制,参考System.SyncObjs单元

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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