社区
GAME,图形处理/多媒体
帖子详情
PaintBox绘图,是否只能在主线程绘图?
hoskyloser
2011-09-02 10:28:37
我现在在做一个程序,是多线程处理数据,然后主线程在paintBox绘图,但是处理同步关系很难,我又不想使用Synchronize 因为使用这个方法其实也是在主线程绘图,然后再同步到子线程中。
而且子线程处理出来的数据非常大,如果Post到主线程的话会造成很大的内存申请,所以我想在子线程里面绘图,所以我想问子线程中是否可以绘图?因为在我印象中vcl只能主线程操作,请高手们帮帮忙!
...全文
219
12
打赏
收藏
PaintBox绘图,是否只能在主线程绘图?
我现在在做一个程序,是多线程处理数据,然后主线程在paintBox绘图,但是处理同步关系很难,我又不想使用Synchronize 因为使用这个方法其实也是在主线程绘图,然后再同步到子线程中。 而且子线程处理出来的数据非常大,如果Post到主线程的话会造成很大的内存申请,所以我想在子线程里面绘图,所以我想问子线程中是否可以绘图?因为在我印象中vcl只能主线程操作,请高手们帮帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lhy
2011-09-02
打赏
举报
回复
可以在子线程里在Bitmap里画好,然后Synchronize,贴到PaintBox上。
yaowenwen1234
2011-09-02
打赏
举报
回复
恩~严重同意LS
haitao
2011-09-02
打赏
举报
回复
子线程操作界面vcl,必须Synchronize
线程间的数据互访,倒是不必post吧,只要加了适当的互斥就行了
bdmh
2011-09-02
打赏
举报
回复
可以在子线程,传递canvas,注意同步和canvas的加锁
hoskyloser
2011-09-02
打赏
举报
回复
自己顶一下!来高手帮忙!
hoskyloser
2011-09-02
打赏
举报
回复
好吧 谢谢lhylhy 方向是有了,概念也清楚了,剩下就得靠自己了。结贴。
lhy
2011-09-02
打赏
举报
回复
[Quote=引用 8 楼 hoskyloser 的回复:]
如果不响应重绘的话,窗口被遮挡住,再露出来不就变成空白了?
[/Quote]
你在主线程再开个Bitmap,保留上次子线程Bitmap的图像,重绘的时候再贴一次就可以了。
hoskyloser
2011-09-02
打赏
举报
回复
还有就是如果主线程发重绘消息的话,会不会把整个界面弄成白白的了。。。。
hoskyloser
2011-09-02
打赏
举报
回复
Synchronize 这种方法我觉得很危险。
我现在一个线程计算数据,然后在一个窗口绘制这个数据,当我多开一个窗口时,需要向线程里增加一个object。当执行到Synchronize 方法时,同时开了一个窗口,这个时候因为主线程向子线程添加object时被锁住了,而Synchronize 方法又没有返回,造成了整个程序的死锁。
另外我可能多个object同时画图(多个object在一个线程内),那贴位图的方法就非常难控制了。
hoskyloser
2011-09-02
打赏
举报
回复
如果不响应重绘的话,窗口被遮挡住,再露出来不就变成空白了?
lhy
2011-09-02
打赏
举报
回复
[Quote=引用 6 楼 hoskyloser 的回复:]
回2楼 5楼 如果在子线程里面绘制,那么主线程响应重绘的话怎么办?
[/Quote]
我是说你在子线程里面自己开个TBitmap画图,然后Synchronize中将Bitmap的图贴到PaintBox上。
hoskyloser
2011-09-02
打赏
举报
回复
回2楼 5楼 如果在子线程里面绘制,那么主线程响应重绘的话怎么办?
stm32单片机项目资料课程设计文档C语言程序代码原理图电路PCB实例多功能出租车计价器设计论文资料
stm32单片机项目资料课程设计文档C语言程序代码原理图电路PCB实例多功能出租车计价器设计论文资料
【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)
内容概要:本文提出了一种基于蒙特卡洛模拟与拉格朗日松弛法相结合的分散式优化方法,用于解决电动汽车充电站在分时电价机制下的有序充电调度问题。通过构建考虑用户充电需求与电网负荷平衡的优化模型,利用拉格朗日松弛法处理多车充电之间的耦合约束,实现去中心化的决策过程;同时引入蒙特卡洛方法模拟用户充电行为的不确定性,提升调度策略的鲁棒性。该方法有效降低了电网负荷峰谷差,提高了充电经济性与系统运行效率,为大规模电动汽车接入提供了可行的调度解决方案。; 适合人群:具备电力系统优化基础和Matlab编程能力的研究生、科研人员,以及从事智能电网、电动汽车能源管理等相关领域的工程技术人员。; 使用场景及目标:①应用于城市充电站集群的运营调度,实现削峰填谷与成本优化;②支撑电力系统需求侧管理研究,评估分时电价政策对用户充电行为的引导效果;③为多
主
体参与的分散式能源管理系统提供算法参考与仿真验证工具。; 阅读建议:建议读者结合提供的Matlab代码深入理解拉格朗日乘子迭代更新机制与蒙特卡洛场景生成流程,重点分析算法收敛性与不同电价策略下的调度结果差异,可通过调整用户数量、充电功率等参数进行仿真实验,以掌握模型的实际应用特性。
【高速互连技术】InfiniBand铜缆物理层规范:4X与12X接口板连接器信号分配及接地设计
内容概要:本文档是 阅读建议:此文档为技术规范类文件,含大量尺寸公差、引脚编号与信号定义,建议结合图纸(如Figure 32–34)和表格(Table 24–25)对照阅读,并注意版本状态为“Draft Errata”,可能非最终正式标准,实际应用中应确认最新发布版本。
pycharm ssh远程访问docker教程
打开链接下载源码: https://pan.quark.cn/s/cc680a4d957f 背景:有些实验需要在服务器上完成,因此为了快速便利地在本地调试远程服务器上的代码,需要完成本地与远程服务器的直连。 然而现阶段诸多服务器上安装有docker,通常需要在docker内完成调试代码,因此本文
主
要提供远程访问服务器docker的配置方法。 需要工具及说明: 一台远程服务器 pycharm:集成开发工具,在本地安装 ssh:远程访问工具,本地和远程服务器都要有 docker:容器,在远程服务器上 1、配置远程服务器docker 第一步:购置配置服务器(如果已有服务器跳过) 可自行在阿里云或腾讯云等服务器提供商购买centos服务器,或使用公司或学校提供的服务器,
23CJ87-1 采光、通风、消防排烟天窗(一)_可搜索.pdf
23CJ87-1 采光、通风、消防排烟天窗(一)_可搜索
GAME,图形处理/多媒体
1,184
社区成员
14,330
社区内容
发帖
与我相关
我的任务
GAME,图形处理/多媒体
Delphi GAME,图形处理/多媒体
复制链接
扫一扫
分享
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章