社区
语言基础/算法/系统设计
帖子详情
BUG: System.TMonitor 作为同步对象时可能会产生异常
shadowstar
2011-05-24 09:52:34
经过数日折磨之后终于确定是TMonitor存在BUG @_@,问题主要来自于Wait和Pulse这组函数。
因为Generics.Collections.TThreadedQueue同样使用了TMonitor来同步,所以TThreadedQueue也有BUG。
Classes.TThreadList也使用TMonitor,不过因为里面没有用到Wait函数,所以并TThreadList可以正常使用。
...全文
296
2
打赏
收藏
BUG: System.TMonitor 作为同步对象时可能会产生异常
经过数日折磨之后终于确定是TMonitor存在BUG @_@,问题主要来自于Wait和Pulse这组函数。 因为Generics.Collections.TThreadedQueue同样使用了TMonitor来同步,所以TThreadedQueue也有BUG。 Classes.TThreadList也使用TMonitor,不过因为里面没有用到Wait函数,所以并TThreadList可以正常使用。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shadowstar
2011-05-25
打赏
举报
回复
只要在多线程环境下使用了Wait和Pulse函数都容易出错,目前没发现只使用Enter和Exit的情况下出错,不过还是尽量不要使用TMonitor,而用其它阻塞对象或WINAPI代替。
bdmh
2011-05-25
打赏
举报
回复
什么意思,你发现什么bug了,声明情况下会无效
线程共享锁 T
Monitor
示例
`T
Monitor
` 是 Delphi 中用于实现线程
同步
的一种机制,它提供了一种线程安全的方式来控制对
对象
的访问,确保在任何
时
刻只有一个线程可以执行特定的代码块。这个例子将深入探讨 `T
Monitor
` 的使用,以及如何通过它来...
T
monitor
睿频实
时
频率
T
Monitor
.exe是T
monitor
软件的执行文件,下载并运行该文件,用户即可在界面中看到CPU的各项详细信息,包括核心数量、当前频率、最大睿频等。此外,软件通常还具备其他功能,如温度监控、电压监测,以及历史记录分析...
一个Delphi对像池操作类源码 UntPools.pas.rar
7. **
异常
处理**:在
对象
的获取和释放过程中,
可能
会
遇到各种
异常
,如无可用
对象
、
对象
已被释放等。因此,
对象
池类需要有适当的
异常
处理机制。 通过研究 UntPools.pas 的源码,我们可以深入理解 Delphi 中
对象
池的...
关于线程管理 thread delphi
Delphi 提供了 SetThreadPriority 函数来调整线程优先级,但要注意高优先级线程
可能
会
导致优先级反转或饥饿现象,因此谨慎使用。 六、线程池 线程池是一种优化线程管理的技术,预先创建一组线程,当有任务需要执行...
Delphi 多线程实例
Delphi提供了多种
同步
机制,如T
Monitor
、TCriticalSection、TSemaphore等。这些
同步
组件可以帮助我们在多线程环境下安全地访问共享资源。 例如,如果你有一个全局变量或数据结构需要在多个线程之间共享,可以使用...
语言基础/算法/系统设计
16,743
社区成员
33,237
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章