问个多线程小问题

venge 2005-04-12 10:07:42
有没有让listview之类进入临界点的函数?
好像trtlcriticalsection只能对变量起作用,函数就不行,object也不行。
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
venge 2005-04-22
  • 打赏
  • 举报
回复
没人re 啊?
tomp 2005-04-22
  • 打赏
  • 举报
回复
怎么没人回答啊?用另一种表达方式吧。
我有两个子线程a、b,都对同一个listview操作。在a线程检查到listview的i行的值要更改的时候,b线程把listview给clear了,结果a线程去更改已不存在的i行时就导致a线程死了。
当然,对于这种问题我可以用try来避免它,但是我想这样来处理它:当a线程需要检查listview哪一行要更改的时候,我先进入trtlcriticalsection,做完之后在出来,然后b才去clear listview。
可是我的试验表明,对于trtlcriticalsection,它只是支持interger、string之类的,对于listview是不支持的,我估计是对object都不支持。
所以我要问问大家,怎么让listview之类的object进入临界点之类的东西
venge 2005-04-14
  • 打赏
  • 举报
回复
可是信号灯是互斥的高级版啊,我看对付进程才要互斥,难道对付进程内的线程就要用信号量吗?
FigoZhu 2005-04-12
  • 打赏
  • 举报
回复
你用信号量之类的方法来保护。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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