猿问

C#多线程技术

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

烙印99
浏览 566回答 2
2回答

德玛西亚99

呵呵,我以前做过一个跟你说的情况类似的项目。给你说说我当时的思路,希望对你有所帮助。我以前做的一个项目是任意给你一张图片,要求你把给定底色的颜色的位置设置为透明。如果一张图片很大的话,使用单线程运算非常慢,所以最后使用的多线程进行运算,效率大增。我当时的解决方案是把图像保存到数组中,然后把这个数组分成要使用线程的数量,假定使用4个。主线程划分好每个数组大小,并设置好每个线程要处理的数组和信号量(用于处理检测是否处理完成),然后主线程启动这4个线程,主线程进程进入等待状态,当4个辅助线程全部处理完毕后,激活主线程。思路基本是这样,我使用多线程后比单线程快了几倍。
随时随地看视频慕课网APP
我要回答