delphi中如何实现多线程对Canvas的同时访问
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中如何实现多线程对Canvas的同时访问相关的知识,希望对你有一定的参考价值。
我在Delphi中要对一个图像的每一个像素点都进行处理(image.picture.bitmap.Canvas.Pixels[i,j]:=xxx;),将图像分成几个区域由不同的线程同时处理以加快速度。怎样才能让几个线程同时访问Canvas而不会出现"Canvas does not allow drawing"的错误。(几个线程访问的区域不同)
我将追加悬赏,谢谢。
把大图像拆分成几个小图像,然后分别在线程里处理,
不要直接在大图像上分几个区域进行处理。
处理完成后再合并成一个大图像 参考技术A 一个画布的canvas只有一个 所以 如果采用你的分区域画的方式 其实在某个时刻 只能有一个线程占用canvas 只能画一个区域,也就是不能体现多线程的优势,所以 如楼上的 建议使用拆分-合并的方式
spring如何解决多线程的数据操作
列如多个线程同时对一个对像进行getHibernateTemplate().update(XXX)方法时,spring是如何处理的。
本人接触JAVA不久,请手动回答。
我是想问getHibernateTemplate()里面的更删改的方法是同步方法吗
追答不是同步的
参考技术A 首先一个请求过来的执行步骤:action到service再到daoDAO调用getHibernateTemplate().update(XXX)方法执行更新操作,
在spring中利用事务管理可以保证执行service层的时候是在一个事物中进行。
即每个线程都在不同的事物里。
事物的四个特性,原子性,隔离性,一致性,持久性 保证了代码执行不会有问题。
以上是关于delphi中如何实现多线程对Canvas的同时访问的主要内容,如果未能解决你的问题,请参考以下文章