社区
C++ Builder
帖子详情
多线程中的问题
aquam
2001-06-05 09:33:00
请问,我在子线程中修改主线程中控件的属性,调用控件的方法,会不会影响线程的安全?
比如,为了显示一个队列的长度,我在子线程中修改主线程中Label的Caption属性显示。
还有,调用主线程中的TQuery控件的方法向数据库写数据。
谢谢
...全文
121
10
打赏
收藏
多线程中的问题
请问,我在子线程中修改主线程中控件的属性,调用控件的方法,会不会影响线程的安全? 比如,为了显示一个队列的长度,我在子线程中修改主线程中Label的Caption属性显示。 还有,调用主线程中的TQuery控件的方法向数据库写数据。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TR@SOE
2001-06-06
打赏
举报
回复
VCL绝大多数不是线程安全的。必须使用Synchronize()方法。
wjzhuang
2001-06-06
打赏
举报
回复
vcl不全是线程安全的(bcb5)
ciml
2001-06-05
打赏
举报
回复
我问一下各位,怎么给给线程的终止事件添加代码?
comanche
2001-06-05
打赏
举报
回复
不一定,VCL是线程安全的(Delphi5),如果你access 主线程上的东东,会让子线程相互等待,很明显,就好像所有子线程都停在那等,你可以用个Edit试试(不要用synchronize,它很安全)。
但VCL中有一部份控件,从 TGraphicControl派生的都不是线程安全的,但你也不要用 synchromize同步,这部份的控件都有 Lock和 Unlock方法,你可能用 Label试试
孩皮妞野
2001-06-05
打赏
举报
回复
第二个问题参考 示例 bkquery, 好像要用一个独立的Session. 那么 ADO呢?
孩皮妞野
2001-06-05
打赏
举报
回复
都是这样做的嘛。 记住用Synchronize(), 其它没问题。
wjzhuang
2001-06-05
打赏
举报
回复
不好意思,少打了几个字:
"特别是使用vcl,尽量不要使用线程不安全的vcl和使用操作vcl的主线程"
改为:
特别是使用vcl,尽量不要使用线程不安全的vcl,而应该使用vcl主线程来负责操作vcl控件
wjzhuang
2001-06-05
打赏
举报
回复
叶老大没发现问题那应该可以.
不过我觉得你这种操作方式不好,如果你在多个线程中使用了一些共同变量,那就应该有相应的保护措施.
特别是使用vcl,尽量不要使用线程不安全的vcl和使用操作vcl的主线程.不然很容易出问题的.
看你的描述,好像没必要特别去调用别的线程来完成事情.要们再写一个线程,要们安排好事件处理
或者使用公共变量.
对于线程安全有一些保护方式.你可以参考一些书籍.比如:c++builder5 开发人员指南
抬头看路
2001-06-05
打赏
举报
回复
会,VCL不是线程安全的。
「已注销」
2001-06-05
打赏
举报
回复
我用过
暂时还没发现问题
@_@
请详细了解此线程机制的朋友来解答一下
大家准备听课咯
POSIX
多线程
程序设计.pdf
内容简介 《POSIX
多线程
程序设计》深入描述了IEEE的开放系统接口标准——POSIX线程,通常称为Pthreads标准。本书首先解释了线程的基本概念,包括异步编程、线程的生命周期和同步机制;然后讨论了一些高级话题,包括属性对象、线程私有数据和实时调度。此外,本书还讨论了调度的
问题
,并给出了避免错误和提高性能等
问题
的有价值的建议。本书使用了大量注释过后 实例来解释实际的概念,并包括Pthreads的简单索引和对标准化的展望。 《POSIX
多线程
程序设计》适合有经验的C语言程序员阅读,也适合
多线程
人员参考。
WPF
多线程
演示
WPF
多线程
演示
下载
多线程
编程技术开发资料 高清完整PDF版
多线程
编程技术开发资料.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权
问题
,请联系删除!
Java.Concurrency.in.Practice.pdf
Java.Concurrency.in.Practice.pdf
3-04
多线程
相关
概念:
多线程
是指一个进程(执行
中
的程序)同时运行多个线程(进程
中
负责程序执行的执行单元),
多线程
可以协作完成进程工作,其目的是更好的利用 CPU 资源 Java线程具有五
中
基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线...
C++ Builder
13,870
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章