我正在尝试使用这个很棒的项目,但是由于我需要扫描许多图像,因此该过程需要很多时间,因此我正在考虑对其进行多线程处理。
但是,由于对图像进行实际处理的类使用并由我Static methods
进行操作,因此我不确定如何正确处理。我从主线程调用的方法是:Objects
ref
public static void ScanPage(ref System.Collections.ArrayList CodesRead, Bitmap bmp, int numscans, ScanDirection direction, BarcodeType types)
{
//added only the signature, actual class has over 1000 rows
//inside this function there are calls to other
//static functions that makes some image processing
}
我的问题是这样使用这个函数是否安全:
List<string> filePaths = new List<string>();
Parallel.For(0, filePaths.Count, a =>
{
ArrayList al = new ArrayList();
BarcodeImaging.ScanPage(ref al, ...);
});
我花了几个小时调试它,大部分时间我得到的结果都是正确的,但我确实遇到了几个我现在似乎无法重现的错误。
编辑
我将类的代码粘贴到这里: http: //pastebin.com/UeE6qBHx