首页 新闻 会员 周边 捐助

C#多线程技术

0
[已解决问题] 解决于 2012-06-13 17:17

开发了一款切图软件,执行速度比较低,考虑用多线程技术,已经开发的项目模块如下:切割图片方法,压缩图片方法,这两个方法放入一个类中,在主函数初始化类的实例进行方法调用,请问,切割图片方法比较耗时间,我想用几个线程去完成切割图片的工作,代码怎么写?如何调用,多线程以前没怎么使用,所以忘记了,请各位大虾帮帮忙,感激不尽!

乔乔lovefreedom的主页 乔乔lovefreedom | 初学一级 | 园豆:9
提问于:2011-02-14 16:52
< >
分享
最佳答案
0

呵呵,我以前做过一个跟你说的情况类似的项目。给你说说我当时的思路,希望对你有所帮助。

我以前做的一个项目是任意给你一张图片,要求你把给定底色的颜色的位置设置为透明。如果一张图片很大的话,使用单线程运算非常慢,所以最后使用的多线程进行运算,效率大增。

我当时的解决方案是把图像保存到数组中,然后把这个数组分成要使用线程的数量,假定使用4个。主线程划分好每个数组大小,并设置好每个线程要处理的数组和信号量(用于处理检测是否处理完成),然后主线程启动这4个线程,主线程进程进入等待状态,当4个辅助线程全部处理完毕后,激活主线程。

思路基本是这样,我使用多线程后比单线程快了几倍。

奖励园豆:5
归真 | 小虾三级 |园豆:605 | 2011-02-14 17:58
其他回答(2)
0
小玖 | 园豆:205 (菜鸟二级) | 2011-02-14 17:17
0

最简单的就是使用backgroundworker,有时候遇到的问题是怎么保证线程的同步。

massinger | 园豆:706 (小虾三级) | 2011-02-18 19:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册