在没有锁的线程之间共享大数据

时间:2014-05-30 08:04:00

标签: c# multithreading

我正在学习C#(目前使用的是.NET Framework 2.0)。编写应该比较图像的测试程序。首先,我阅读所有图像并制作这些图像的缩略图数组。然后我运行多个线程来处理这个数组。线程必须从数组中选择一个对象并将其与其他对象进行比较。但我得到了例外情况“该对象目前正在其他地方使用”。似乎Bitmap有一个内部锁定,即使是为了读取,也会阻止从多个线程访问对象。如果我锁定“比较”功能甚至有多个线程的重点是什么?我可以为每个线程复制缩略图数组,但我认为这不是一个好主意,因为数组可能很大,而且资源使用效率也很低。所以,我的问题是:线程如何在不锁定的情况下使用共享(可能很大)的数据?

0 个答案:

没有答案